summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4732.txt
blob: 5032b8610661602babeedf9f9675d5c2f0584c92 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
Network Working Group                                    M. Handley, Ed.
Request for Comments: 4732                                           UCL
Category: Informational                                 E. Rescorla, Ed.
                                                       Network Resonance
                                             Internet Architecture Board
                                                                     IAB
                                                           November 2006


               Internet Denial-of-Service Considerations

Status of This Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The IETF Trust (2006).

Abstract

   This document provides an overview of possible avenues for denial-
   of-service (DoS) attack on Internet systems.  The aim is to encourage
   protocol designers and network engineers towards designs that are
   more robust.  We discuss partial solutions that reduce the
   effectiveness of attacks, and how some solutions might inadvertently
   open up alternative vulnerabilities.






















Handley, et al.              Informational                      [Page 1]
^L
RFC 4732                   DoS Considerations              November 2006


Table of Contents

   1. Introduction ....................................................3
   2. An Overview of Denial-of-Service Threats ........................4
      2.1. DoS Attacks on End-Systems .................................4
           2.1.1. Exploiting Poor Software Quality ....................4
           2.1.2. Application Resource Exhaustion .....................5
           2.1.3. Operating System Resource Exhaustion ................6
           2.1.4. Triggered Lockouts and Quota Exhaustion .............7
      2.2. DoS Attacks on Routers .....................................8
           2.2.1. Attacks on Routers through Routing Protocols ........8
           2.2.2. IP Multicast-based DoS Attacks ......................9
           2.2.3. Attacks on Router Forwarding Engines ...............10
      2.3. Attacks on Ongoing Communications .........................11
      2.4. Attacks Using the Victim's Own Resources ..................12
      2.5. DoS Attacks on Local Hosts or Infrastructure ..............12
      2.6. DoS Attacks on Sites through DNS ..........................15
      2.7. DoS Attacks on Links ......................................16
      2.8. DoS Attacks on Firewalls ..................................17
      2.9. DoS Attacks on IDS Systems ................................18
      2.10. DoS Attacks on or via NTP ................................18
      2.11. Physical DoS .............................................18
      2.12. Social Engineering DoS ...................................19
      2.13. Legal DoS ................................................19
      2.14. Spam and Black-Hole Lists ................................19
   3. Attack Amplifiers ..............................................20
      3.1. Methods of Attack Amplification ...........................20
      3.2. Strategies to Mitigate Attack Amplification ...............22
   4. DoS Mitigation Strategies ......................................22
      4.1. Protocol Design ...........................................23
           4.1.1. Don't Hold State for Unverified Hosts ..............23
           4.1.2. Make It Hard to Simulate a Legitimate User .........23
           4.1.3. Graceful Routing Degradation .......................24
           4.1.4. Autoconfiguration and Authentication ...............24
      4.2. Network Design and Configuration ..........................25
           4.2.1. Redundancy and Distributed Service .................25
           4.2.2. Authenticate Routing Adjacencies ...................25
           4.2.3. Isolate Router-to-Router Traffic ...................26
      4.3. Router Implementation Issues ..............................26
           4.3.1. Checking Protocol Syntax and Semantics .............26
           4.3.2. Consistency Checks .................................27
           4.3.3. Enhance Router Robustness through
                  Operational Adjustments ............................28
           4.3.4. Proper Handling of Router Resource Exhaustion ......28
      4.4. End-System Implementation Issues ..........................29
           4.4.1. State Lookup Complexity ............................29
           4.4.2. Operational Issues .................................30
   5. Conclusions ....................................................30



Handley, et al.              Informational                      [Page 2]
^L
RFC 4732                   DoS Considerations              November 2006


   6. Security Considerations ........................................31
   7. Acknowledgements ...............................................31
   8. Normative References ...........................................31
   9. Informative References .........................................32
   Appendix A. IAB Members at the Time of This Writing ...............36

1.  Introduction

   A Denial-of-Service (DoS) attack is an attack in which one or more
   machines target a victim and attempt to prevent the victim from doing
   useful work.  The victim can be a network server, client or router, a
   network link or an entire network, an individual Internet user or a
   company doing business using the Internet, an Internet Service
   Provider (ISP), country, or any combination of or variant on these.
   Denial-of-service attacks may involve gaining unauthorized access to
   network or computing resources, but for the most part in this
   document we focus on the cases where the denial-of-service attack
   itself does not involve a compromise of the victim's computing
   facilities.

   Because of the closed context of the original ARPANET and NSFNet, no
   consideration was given to denial-of-service attacks in the original
   Internet Architecture.  As a result, almost all Internet services are
   vulnerable to denial-of-service attacks of sufficient scale.  In most
   cases, sufficient scale can be achieved by compromising enough end-
   hosts (typically using a virus or worm) or routers, and using those
   compromised hosts to perpetrate the attack.  Such an attack is known
   as a Distributed Denial-of-Service (DDoS) attack.  However, there are
   also many cases where a single well-connected end-system can
   perpetrate a successful DoS attack.

   This document is intended to serve several purposes:

   o To highlight possible avenues for attack, and by so doing encourage
     protocol designers and network engineers towards designs that are
     more robust.

   o To discuss partial solutions that reduce the effectiveness of
     attacks.

   o To highlight how some partial solutions can be taken advantage of
     by attackers to perpetrate alternative attacks.

   This last point appears to be a recurrent theme in DoS, and
   highlights the lack of proper architectural solutions.  It is our
   hope that this document will help initiate informed debate about
   future architectural solutions that might be feasible and cost-
   effective for deployment.



Handley, et al.              Informational                      [Page 3]
^L
RFC 4732                   DoS Considerations              November 2006


   In addition, it is our hope that this document will spur discussion
   leading to architectural solutions that reduce the susceptibility of
   all Internet systems to denial-of-service attacks.

   We note that in principle it is not possible to distinguish between a
   sufficiently subtle DoS attack and a flash crowd (where unexpected
   heavy but non-malicious traffic has the same effect as a DoS attack).
   Whilst this is true, such malicious attacks are usually more
   expensive to launch than many of the crude attacks that have been
   seen to date.  Thus, defending against DoS is not about preventing
   all possible attacks, but rather is largely a question of raising the
   bar sufficiently high for malicious traffic.

   However, it is also important to note that not all DoS problems are
   malicious.  Failed links, flash crowds, misconfigured bots, and
   numerous other causes can result in resource exhaustion problems, and
   so the overall goal should be to be robust to all forms of overload.

2.  An Overview of Denial-of-Service Threats

   In this section, we will discuss a wide range of possible DoS
   attacks.  This list cannot be exhaustive, but the intent is to
   provide a good overview of the spectrum of possibilities that need to
   be defended against.

   We do not provide descriptions of any attacks that are not already
   publicly well documented.

2.1.  DoS Attacks on End-Systems

   We first discuss attacks on end-systems.  An end-system in this
   context is typically a PC or network server, but it can also include
   any communication endpoint.  For example, a router also is an end-
   system from the point of view of terminating TCP connections for BGP
   [10] or ssh [46].

2.1.1.  Exploiting Poor Software Quality

   The simplest DoS attacks on end-systems exploit poor software quality
   on the end-systems themselves, and cause that software to simply
   crash.  For example, buffer-overflow attacks might be used to
   compromise the end-system, but even if the buffer-overflow cannot be
   used to gain access, it will usually be possible to overwrite memory
   and cause the software to crash.  Such vulnerabilities can in
   principle affect any software that uses data supplied from the
   network.  Thus, not only might a web server be potentially
   vulnerable, but it might also be possible to crash the back-end
   software (such as a database) to which a web server provides data.



Handley, et al.              Informational                      [Page 4]
^L
RFC 4732                   DoS Considerations              November 2006


   Software crashes due to poor coding affect not only application
   software, but also the operating system kernel itself.  A classic
   example is the so-called "ping of death", which became widely known
   in 1996 [21].  This exploit caused many popular operating systems to
   crash when sent a single fragmented ICMP echo request packet whose
   fragments totaled more than the 65535 bytes allowed in an IPv4
   packet.

   While DoS attacks such as the ping of death are a significant
   problem, they are not a significant architectural problem.  Once such
   an attack is discovered, the relevant code can easily be patched, and
   the problem goes away.  We should note though that as more and more
   software becomes embedded, it is important not to lose the
   possibility of upgrading the software in such systems.

2.1.2.  Application Resource Exhaustion

   Network applications exist in a context that has finite resources.
   In processing network traffic, such an application uses these
   resources to do its intended task.  However, an attacker may be able
   to prevent the application from performing its intended task by
   causing the application to exhaust the finite supply of a specific
   resource.

   The obvious resources that might be exhausted include:

   o Available memory.

   o The CPU cycles available.

   o The disk space available to the application.

   o The number of processes or threads or both that the application is
     permitted to use.

   o The configured maximum number of simultaneous connections the
     application is permitted.

   This list is clearly not exhaustive, but it illustrates a number of
   points.

   Some resources are self-renewing: CPU cycles fall in this category --
   if the attack ceases, more CPU cycles become available.

   Some resources such as disk space require an explicit action to free
   up -- if the application cannot do this automatically then the
   effects of the attack may be persistent after the attack has ceased.




Handley, et al.              Informational                      [Page 5]
^L
RFC 4732                   DoS Considerations              November 2006


   This problem has been understood for many years, and it is common
   practice for logs and incoming email to be stored in a separate disk
   partition (/var on Unix systems) in order to limit the impact of
   exhaustion.

   Some resources are constrained by configuration: the maximum number
   of processes and the maximum number of simultaneous connections are
   not normally hard limits, but rather are configured limits.  The
   purpose of such limits is clearly to allow the machine to perform
   other tasks in the event the application misbehaves.  However, great
   care needs to be taken to choose such limits appropriately.  For
   example, if a machine's sole task is to be an FTP server, then
   setting the maximum number of simultaneous connections to be
   significantly less than the machine can service makes the attacker's
   job easier.  But setting the limit too high may permit the attacker
   to cause the machine to crash (due to poor OS design in handling
   resource exhaustion) or permit livelock (see below), which are
   generally even less desirable failure modes.

2.1.3.  Operating System Resource Exhaustion

   Conceptually, OS resource exhaustion and application resource
   exhaustion are very similar.  However, in the case of application
   resource exhaustion, the operating system may be able to protect
   other tasks from being affected by the DoS attack.  In the case of
   the operating system itself running out of resources, the problem may
   be more catastrophic.

   Perhaps the best-known DoS attack on an operating system is the TCP
   SYN-flood [19], which is essentially a memory-exhaustion attack.  The
   attacker sends a flood of TCP SYN packets to the victim, requesting
   connection setup, but then does not complete the connection setup.
   The victim instantiates state to handle the incoming connections.  If
   the attacker can instantiate state faster than the victim times it
   out, then the victim will run out of memory that it can use to hold
   TCP state, and so it cannot service legitimate TCP connection setup
   attempts.  This issue was exacerbated in some implementations by the
   use of a small dedicated storage space for half-open connections,
   which made the attack easier than it might otherwise have been.  In
   the case of a poorly coded operating system, running out of resources
   may also cause a system crash.

   An alternative TCP DoS attack is the Ack-flood [23], which is
   essentially a CPU exhaustion attack on the victim.  The attacker
   floods the victim with TCP packets pretending to be from connections
   that have never been established.  A busy server that has a large
   number of outstanding connections needs to check which connection the
   packet corresponds to.  Some TCP implementations implemented this



Handley, et al.              Informational                      [Page 6]
^L
RFC 4732                   DoS Considerations              November 2006


   search rather inefficiently, and so the attacker could use all the
   victim's CPU resources servicing these packets rather than servicing
   legitimate requests.

   We note that strong authentication mechanisms do not necessarily
   mitigate against such CPU exhaustion attacks.  In fact, poorly
   designed authentication mechanisms using cryptographic methods can
   exacerbate the problem.  If such an authentication mechanism allows
   an attacker to present a packet to the victim that requires
   relatively expensive cryptographic authentication before the packet
   can be discarded, then this makes the attacker's CPU exhaustion
   attack easier.

   CPU exhaustion attacks can be also be exacerbated by poor OS handling
   of incoming network traffic.  In the absence of malicious traffic, an
   ideal OS should behave as follows:

   o As incoming traffic increases, the useful work done by the OS
     should increase until some resource (such as the CPU) is saturated.

   o From this point on, as incoming traffic continues to increase the
     useful work done should be constant.

   However, this is often not the case.  Many systems suffer from
   livelock [33] where, after saturation, increasing the load causes a
   decrease in the useful work done.  One cause of this is that the
   system spends an increasing amount of time processing network
   interrupts for packets that will never be processed, and hence a
   decreasing amount of time is available for the application for which
   these packets were intended.

2.1.4.  Triggered Lockouts and Quota Exhaustion

   Many user-authentication mechanisms attempt to protect against
   password guessing attacks by locking the user out after a small
   number of failed authentications.  If an attacker can guess or
   discover a user's ID, they may be able to trigger such a mechanism,
   locking out the legitimate user.

   Another way to deny service using protection mechanisms is to cause a
   quota to be exhausted.  This is perhaps most common in the case of
   small web servers being commercially hosted, where the server has a
   contract with the hosting company allowing a fixed amount of traffic
   per day.  An attacker may be able to rapidly exhaust this quota, and
   cause service to be suspended.  Similar attacks may be possible
   against other forms of quota.





Handley, et al.              Informational                      [Page 7]
^L
RFC 4732                   DoS Considerations              November 2006


   In the absence of such quotas, if the victim is charged for their
   network traffic, a financial denial-of-service may be possible.

2.2.  DoS Attacks on Routers

   Many of the denial-of-service attacks that can be launched against
   end-systems can also be launched against the control processor of an
   IP router, for example, by flooding the command and control access
   ports.  In the case of a router, these attacks may cause the router
   to stall, or may cause the router to cease processing routing
   packets.  Even if the router does not stop servicing routing packets,
   it may become sufficiently slow that routing protocols time out.  In
   any of these circumstances, the consequence of routing failure is not
   only that the router ceases to forward traffic, but also that it
   causes routing protocol churn that may have further side effects.

   An example of such a side effect is caused by BGP route flap damping
   [11], which is intended to reduce global routing churn.  If an
   attacker can cause BGP routing churn, route flap damping may then
   cause the flapping routes to be suppressed [31].  This suppression
   likely causes the networks served by those routes to become
   unreachable.

   A DoS attack on the router control processor might also prevent the
   router from being managed effectively.  This may prevent actions
   being taken that would mitigate the DoS attack, and it might prevent
   diagnosis of the cause of the problem.

2.2.1.  Attacks on Routers through Routing Protocols

   In addition to their roles as end-systems, most routers run dynamic
   routing protocols.  The routing protocols themselves can be used to
   stage a DoS attack on a router or a network of routers.  This
   requires the ability to send traffic from addresses that might
   plausibly have generated the relevant routing messages, which is
   somewhat difficult with interior routing protocols but fairly easy
   with External Border Gateway Protocol (eBGP), for instance.

   The simplest attack on a network of routers is to overload the
   routing table with sufficiently many routes that the router runs out
   of memory, or the router has insufficient CPU power to process the
   routes [26].  We note that depending on the distribution and
   capacities of various routers around the network, such an attack
   might not overwhelm routers near to the attacking router, but might
   cause problems to show up elsewhere in the network.

   Some routing protocol implementations allow limits to be configured
   on the maximum number of routes to be heard from a neighbor [27].



Handley, et al.              Informational                      [Page 8]
^L
RFC 4732                   DoS Considerations              November 2006


   However, limits often make the problem worse rather than better, by
   making it possible for the attacker to push out legitimate routes
   with spoofed routes, thus creating an easy form of DoS attack.

   An alternative attack is to overload the routers on the network by
   creating sufficient routing table churn that routers are unable to
   process the changes.  Many routing protocols allow damping factors to
   be configured to avoid just such a problem.  However, as with table
   size, such a threshold applied inconsistently may allow the spoofed
   routes to merge with legitimate routes before the mechanism is
   applied, causing legitimate routes to be damped.

   The simplest routing attack on a specific destination is for an
   attacker to announce a spoofed desirable route to that destination.
   Such a route might be desirable because it has low metric, or because
   it is a more specific route than the legitimate route.  In any event,
   if the route is believed, it will cause traffic for the victim to be
   drawn towards the attacking router, where it will typically be
   discarded.

   A more subtle denial-of-service attack might be launched against a
   network rather than against a destination.  Under some circumstances,
   the propagation of inconsistent routing information can cause traffic
   to loop.  If an attacker can cause this to happen on a busy path, the
   looping traffic might cause significant congestion, as well as fail
   to reach the legitimate destination.

   In the past, there have been cases where different generations of
   routers interpreted a routing protocol specification differently.  In
   particular, BGP specifies that in the case of an error, the BGP
   peering should be dropped.  However, if some of the routers in a
   network treat a particular route as valid and other routers treat the
   route as invalid, then it may be possible to inject a BGP route at
   one point in the Internet and cause peerings to be dropped at many
   other places in the Internet.  Unlike many of the examples above,
   while such an issue might be a serious short-term problem, this is
   not a fundamental architectural problem.  Once the problem is
   understood, deploying patched routing code can permanently solve the
   issue.

2.2.2.  IP Multicast-based DoS Attacks

   There are essentially two forms of IP multicast: traditional Any-
   Source Multicast (ASM), as specified in RFC 1112 [4] where multiple
   sources can send to the same multicast group, and Source-Specific
   Multicast (SSM) where the receiver must specify both the IP source
   address and the group address.  The two forms of multicast provide
   rather different DoS possibilities.



Handley, et al.              Informational                      [Page 9]
^L
RFC 4732                   DoS Considerations              November 2006


   ASM protocols such as PIM-SM [6], MSDP [32], and DVMRP [12] typically
   cause some routers to instantiate routing state at the time a packet
   is sent to a multicast group.  They do this to ensure that the
   traffic goes to the group receivers and not to non-receivers.  Such
   protocols are particularly vulnerable to DoS attacks, as an attacker
   that sends to many multicast groups may cause both multicast routing
   table explosion (and hence control processor memory exhaustion) and
   multicast forwarding table exhaustion (and hence forwarding card
   memory exhaustion or thrashing).

   ASM also permits an attacker to send traffic to the same group as
   legitimate traffic, potentially causing network congestion and
   denying service to the legitimate group.

   SSM does not permit senders to send to arbitrary groups unless a
   receiver has requested the traffic.  Thus, sender-based attacks on
   multicast routing state are not possible with SSM.  However, as with
   ASM, a receiver can still join a large number of multicast groups
   causing routers to hold a large amount of multicast routing state,
   potentially causing memory exhaustion and hence denial-of-service to
   legitimate traffic.

   With IPv6, hosts are required to send ICMP Packet Too Big or
   Parameter Problem messages under certain circumstances, even if the
   destination address is a multicast address.  If the attacker can
   place himself in the appropriate position in the multicast tree, a
   packet with an unknown but mandatory Destination Option, for
   instance, could generate a very large number of responses to the
   claimed sender.

   With IPv4, the same problem exists with multicast ICMP Echo Request
   packets, but these are somewhat easier to filter.

   The examples above should not be taken as exhaustive.  These are
   actually specific cases of a general problem that can happen when a
   multicast/broadcast request solicits a reply from a large number of
   nodes.

2.2.3.  Attacks on Router Forwarding Engines

   Router vendors implement many different mechanisms for packet
   forwarding, but broadly speaking they fall into two categories: ones
   that use a forwarding cache, and ones that do not.  With a forwarding
   cache, the forwarding engine does not hold the full routing table,
   but rather holds just the currently active subset of the forwarding
   table.





Handley, et al.              Informational                     [Page 10]
^L
RFC 4732                   DoS Considerations              November 2006


   Many modern routers use a loosely coupled architecture, where one or
   more control processors handle the routing protocols and communicate
   over an internal network link to special-purpose forwarding engines,
   which actually forward the data traffic.  In such architectures, it
   may be possible for an attacker to overwhelm the communications link
   between the control processor and the forwarding engine.  This is
   possible because the forwarding engines support very high speed
   links, and the control processor simply cannot handle a similar rate
   of traffic.

   There may be many ways in which an attacker can trigger communication
   between the forwarding engines and the control processor.  The
   simplest way is for the attacker to simply send to the router's IP
   address, but this should in principle be relatively easy to prevent
   using filtering on the forwarding engines.  Another way might be to
   cause the router to forward data packets using the "slow path".  This
   involves sending packets that require special attention from the
   forwarding router; if the forwarding engine is not smart enough to
   perform such forwarding, then it will typically pass the packet to
   the control processor.  In a router using a forwarding cache, it may
   be possible to overload the internal communications by thrashing the
   forwarding cache.  Finally, any form of data-triggered communication
   between the forwarding engine and the control processor might cause
   such a problem.  Certain multicast routing protocols including PIM-SM
   contain many such data triggered events that could potentially be
   problematic.

   The effects of overloading such internal communications are hard to
   predict and are very implementation-dependent.  One possible effect
   might be that the forwarding table in the forwarding engine gets out
   of synchronization with the routing table in the control processor
   that reflects what the routing protocols believe is happening.  This
   might cause traffic to be dropped or to loop.

   Finally, if an attacker can generate traffic that causes a router to
   auto-install access control list (ACL) entries, perhaps by triggering
   a response from an intrusion detection system, then it may be
   possible to exhaust the ACL resources on the router.  This might
   prevent future attacks from being filtered, or worse, cause ACL
   processing to be handled by the route processor.

2.3.  Attacks on Ongoing Communications

   Instead of attacking the end-system itself, it is also possible for
   an attacker to disrupt ongoing communications.  If an attacker can
   observe a TCP connection, then it is relatively easy for them to
   spoof packets to either reset that connection or to de-synchronize it
   so that no further progress can be made [29].  Such attacks are not



Handley, et al.              Informational                     [Page 11]
^L
RFC 4732                   DoS Considerations              November 2006


   prevented by transport or application-level security mechanisms such
   as TLS [5] or ssh, because the authentication takes place after TCP
   has finished processing the packets.

   If an attacker cannot observe a TCP connection, but can infer that
   such a connection exists, it is theoretically possible to reset or
   de-synchronize that connection by spoofing packets into the
   connection.  However, this might require an excessively large number
   of spoofed packets to guess both the port of the active end of the
   TCP connection (in most cases, the port of the passive end is
   predictable) and the currently valid TCP sequence numbers.  However,
   as some operating systems have poorly implemented predictable
   algorithms for selecting either the dynamically selected port or the
   TCP initial sequence number [41] [20], then such attacks have been
   found to be feasible [34].  Advice as to how to reduce the
   vulnerability in the specific case of TCP is available in [37].

   An attacker might be able to significantly reduce the throughput of a
   connection by sending spoofed ICMP source quench packets, although
   most modern operating systems should ignore such packets.  However,
   care should be taken in the design of future transport and signaling
   protocols to avoid the introduction of similar mechanisms that could
   be exploited.

2.4.  Attacks Using the Victim's Own Resources

   Instead of directly overloading the victim, it may be possible to
   cause the victim or a machine on the same subnet as the victim to
   overload itself.

   An example of such an attack is documented in [18], where the
   attacker spoofs the source address on a packet sent to the victim's
   UDP echo port.  The source address is that of another machine that is
   running a UDP chargen server (a chargen server sends a character
   pattern back to the originating source).  The result is that the two
   machines bounce packets back and forth as fast as they can,
   overloading either the network between them or one of the end-systems
   itself.

2.5.  DoS Attacks on Local Hosts or Infrastructure

   There are a number of attacks that might only be performed by a local
   attacker.

   An attacker with access to a subnet may be able to prevent other
   local hosts from accessing the network at all by simply exhausting
   the address pool allocated by a Dynamic Host Configuration Protocol
   (DHCP) server.  This requires being able to spoof the MAC address of



Handley, et al.              Informational                     [Page 12]
^L
RFC 4732                   DoS Considerations              November 2006


   an ethernet or wireless card, but this is quite feasible with certain
   hardware and operating systems.

   An alternative DHCP-based attack is simply to respond faster than the
   legitimate DHCP server, and to give out an address that is not useful
   to the victim.

   These sorts of bootstrapping attacks tend to be difficult to avoid
   because most of the time trust relationships are established after IP
   communication has already been established.

   Similar attacks are possible through ARP spoofing [16]; an attacker
   can respond to ARP requests before the victim and prevent traffic
   from reaching the victim.  Some brands of ethernet switch allow an
   even simpler attack: simply send from the victim's MAC address, and
   the switch will redirect traffic destined for the victim to the
   attacker's port.  This attack might also potentially be used to block
   traffic from the victim by engaging screening or flap-dampening
   algorithms in the switch, depending on the switch design.

   It may be possible to cause broadcast storms [16] on a local LAN by
   sending a stream of unicast IP packets to the broadcast MAC address.
   Some hosts on the LAN may then attempt to forward the packets to the
   correct MAC address, greatly amplifying the traffic on the LAN.

   802.11 wireless networks provide many opportunities to deny service
   to other users.  In some cases, the lack of defenses against DoS was
   a deliberate choice--because 802.11 operates on unlicensed spectrum
   it was assumed that there would be sources of interference and that
   producing intentional radio-level jamming would be trivial.  Thus,
   the amount of DoS protection possible at higher levels was minimal.

   Nevertheless, some of the weaknesses of the protocols against more
   sophisticated attacks are worth noting.  The most prominent of these
   is that association is unprotected, thus allowing rogue access points
   (APs) to solicit notifications that would otherwise have gone to
   legitimate APs.

   The SSID field provides effectively no defense against this kind of
   attack.  Unless encryption is enabled, it is trivial to announce the
   presence of a base station (or even of an ad-hoc mode host) with the
   same network name (SSID) as the legitimate basestation.  Even adding
   authentication and encryption a la 802.1X and 802.11i may not help
   much in this respect.  The SSID space is unmanaged, so everyone is
   free to put anything they want in the SSID field.  Most host stacks
   don't deal gracefully with this.  Moreover, SSIDs are very often set
   to the manufacturer's default, making them highly predictable.




Handley, et al.              Informational                     [Page 13]
^L
RFC 4732                   DoS Considerations              November 2006


   Some 802.11 basestations have limited memory for the number of
   associations they can support.  If this is exceeded, they may drop
   all associations.  In an attempt to forestall this problem, some APs
   advertise their load so as to enable stations to choose APs that are
   less loaded.  However, crude implementations of these algorithms can
   result in instability.

   Finally, as the authentication in 802.11 takes place at a
   comparatively high level in the stack, it is possible to simply
   deauthenticate or disassociate the victim from the basestation, even
   if Wired Equivalent Privacy (WEP) is in use [30].  Bellardo and
   Savage [15] describe some simple remedies that reduce the
   effectiveness of such attacks.  While IEEE 802.11w will protect
   Deauthenticate or Disassociate frames, this attack is still possible
   via forging of Association frames.

   What all these attacks have in common is that they exploit
   vulnerabilities in the link auto-configuration mechanisms.  In a
   wireless network, it is necessary for a station to detect the
   presence of APs in order to choose which one to connect to.  In
   802.11, this is handled via the Beacon and Probe Request/Response
   mechanisms.

   Beacons cannot easily be encrypted, because the station needs to
   utilize them prior to authentication in order to discover which APs
   it may wish to communicate with.  Since authentication can only occur
   after interpreting the Beacon, an encrypted Beacon would present a
   chicken-egg problem: you can't obtain a key to decrypt the Beacon
   until completing authentication, and you may not be able to figure
   out which AP to authenticate with prior to decrypting the Beacon.
   Note that in principle you could encrypt Beacons with a shared
   (per-AP) key but this would require each station to trial-decrypt
   beacons until it finds one that matches up to whatever shared
   authentication secret it had.  This is not particularly convenient.

   As a result, discussions of Beacon frame security have largely
   focused on authentication of Beacon frames, not encryption.  Even
   here, solutions are difficult.  While it may be possible for a
   station to validate a Beacon *after* authentication (either by
   checking a Message Integrity Check (MIC) computed with the group key
   provided by the AP or verifying the Beacon parameters during the
   4-way handshake), doing so *before* authentication may require
   synchronization of keys between APs within an SSID.








Handley, et al.              Informational                     [Page 14]
^L
RFC 4732                   DoS Considerations              November 2006


2.6.  DoS Attacks on Sites through DNS

   In today's Internet, DNS is of sufficient importance that if access
   to a site's DNS servers is denied, the site is effectively
   unreachable, even if there is no actual communication problem with
   the site itself.

   Many of the attacks on end-systems described above can be perpetrated
   on DNS servers.  As servers go, DNS servers are not particularly
   vulnerable to DoS.  So long as a DNS server has sufficient memory, a
   modern host can usually respond very rapidly to DNS requests for
   which it is authoritative.  This was demonstrated in October 2002
   when the root nameservers were subjected to a very large DoS attack
   [38].  A number of the root nameservers have since been replicated
   using anycast [1] to further improve their resistance to DoS.
   However, it is important for authoritative servers to have relaying
   disabled, or it is possible for an attacker to force the DNS servers
   to hold state [40].

   Many of the routing attacks can also be used against DNS servers by
   targeting the routing for the server.  If the DNS server is co-
   located with the site for which is authoritative, then the fact that
   the DNS server is also unavailable is of secondary importance.
   However, if all the DNS servers are made unavailable, this may cause
   email to that site to bounce rather than being stored while the mail
   servers are unreachable, so distribution of DNS server locations is
   important.

   Causing network congestion on links to and from a DNS server can have
   similar effects to end-system attacks or routing attacks, causing DNS
   to fail to obtain an answer, and effectively denying access to the
   site being served.

   We note that if an attacker can deny external access to all the DNS
   servers for a site, this will not only cause email to that site to be
   dropped, but it will also cause email from that site to be dropped.
   This is because recent versions of mail transfer agents such as
   sendmail will drop email if the mail originates from a domain that
   does not exist.  This is a classic example of unexpected
   consequences.  Sendmail performs this check as an anti-spam measure,
   and spam itself can be viewed as a form of DoS attack.  Thus,
   defending against one DoS attack opens up the vulnerability that
   allows another DoS attack.  If a receiving implementation is using a
   black-hole list (see Section 2.14) served by DNS, an attacker can
   also mount a DoS attack by attacking the black-hole server.






Handley, et al.              Informational                     [Page 15]
^L
RFC 4732                   DoS Considerations              November 2006


   Finally, a data corruption attack is possible if a site's nameserver
   is permitted to relay requests from untrusted third parties [40].
   The attacker issues a query for the data he wishes to corrupt, and
   the victim's nameserver relays the request to the authoritative
   nameserver.  The request contains a 16-bit ID that is used to match
   up the response with the request.  If the attacker spoofs sufficient
   response packets from the authoritative nameserver just before the
   official response arrives, each containing a forged response and a
   different DNS ID, then there is a reasonable chance that one of the
   forged responses will have the correct DNS ID.  The incorrect data
   will then be believed and cached by the victim's nameserver, so
   giving the incorrect response to future queries.  The probability of
   the attack can further be increased if the attacker issues many
   different requests for the same data with different DNS IDs, because
   many nameserver implementations will issue relayed requests with
   different DNS IDs, and so the response only has to match any one of
   these request IDs [17] [36].

   The use of anycast for DNS services makes it even more vulnerable to
   spoofing attacks.  An attacker who can convince the ISP to accept an
   anycast route to his fake DNS server can arrange to receive requests
   and generate fake responses.  Anycast DNS also makes DoS attacks on
   DNS easier.  The idea is to disable one of the DNS servers while
   maintaining the BGP route to that server.  This creates failures for
   any client that is routed to the (now defunct) server.

2.7.  DoS Attacks on Links

   The simplest DoS attack is to simply send enough non-congestion-
   controlled traffic such that a link becomes excessively congested,
   and legitimate traffic suffers unacceptably high packet loss.

   Under some circumstances, the effect of such a link DoS can be much
   more extensive.  We have already discussed the effects of denying
   access to a DNS server.  Congesting a link might also cause a routing
   protocol to drop an adjacency if sufficient routing packets are lost,
   potentially greatly amplifying the effects of the attack.  Good
   router implementations will prioritize the transmission of routing
   packets, but this is not a total panacea.  If routers are peered
   across a shared medium such as ethernet, it may be possible to
   congest the medium sufficiently that routing packets are still lost.

   Even if a link DoS does not cause routing packets to be lost, it may
   prevent remote access to a router using ssh or Simple Network
   Management Protocol (SNMP) [48].  This might make the router
   unmanageable, or prevent the attack from being correctly diagnosed.





Handley, et al.              Informational                     [Page 16]
^L
RFC 4732                   DoS Considerations              November 2006


   The prioritization of routing packets can itself cause a DoS problem.
   If the attacker can cause a large amount of routing flux, it may be
   possible for a router to send routing packets at a high enough rate
   that normal traffic is effectively excluded.  However, this is
   unlikely except on low-bandwidth links.

   Finally, it may be possible for an attacker to deny access to a link
   by causing the router to generate sufficient monitoring or report
   traffic that the link is filled.  SNMP traps are one possible vector
   for such an attack, as they are not normally congestion controlled.

   Attackers with physical access to multiple access links can easily
   bring down the link.  This is particularly easy to mount and
   difficult to counter with wireless networks.

2.8.  DoS Attacks on Firewalls

   Firewalls are intended to defend the systems behind them against
   attack.  In that they restrict the traffic that can reach those
   systems, they may also aid in defending against denial-of-service
   attacks.  However, under some circumstances the firewall itself may
   also be used as a weapon in a DoS attack.

   There are many different types of firewall, but generally speaking
   they fall into stateful and stateless classes.  The state here refers
   to whether the firewall holds state for the active flows traversing
   the firewall.  Stateless firewalls generally can only be attacked by
   attempting to exhaust the processing resources of the firewall.
   Stateful firewalls can be attacked by sending traffic that causes the
   firewall to hold excessive state or state that has pathological
   structure.

   In the case of excessive state, the firewall simply runs out of
   memory, and can no longer instantiate the state required to pass
   legitimate flows.  Most firewalls will then fail disconnected,
   causing denial-of-service to the systems behind the firewall.

   In the case of pathological structure, the attacker sends traffic
   that causes the firewall's data structures to exhibit worst-case
   behaviour.  An example of this would be when the firewall uses hash
   tables to look up forwarding state, and the attacker can predict the
   hash function used.  The attacker may then be able to cause a large
   amount of flow state to hash to the same bucket, which causes the
   firewall's lookup performance to change from O(1) to O(n), where n is
   the number of flows the attacker can instantiate [28].  Thus, the
   attacker can cause forwarding performance to degrade to the point
   where service is effectively denied to the legitimate traffic
   traversing the firewall.



Handley, et al.              Informational                     [Page 17]
^L
RFC 4732                   DoS Considerations              November 2006


2.9.  DoS Attacks on IDS Systems

   Intrusion detection systems (IDSs) suffer from similar problems to
   firewalls.  It may be possible for an attacker to cause the IDS to
   exhaust its available processing power, to run out of memory, or to
   instantiate state with pathological structure.  Unlike a firewall, an
   IDS will normally fail open, which will not deny service to the
   systems protected by the IDS.  However, it may mean that subsequent
   attacks that the IDS would have detected will be missed.

   Some IDSs are reactive; that is, on detection of a hostile event they
   react to block subsequent traffic from the hostile system, or to
   terminate an ongoing connection from that system.  It may be possible
   for an attacker to spoof packets from a legitimate system, and hence
   cause the IDS to believe that system is hostile.  The IDS will then
   cause traffic from the legitimate system to be blocked, hence denying
   service to it.  The effect can be particularly bad if the legitimate
   system is a router, DNS server, or other system whose performance is
   essential for the operation of a large number of other systems.

2.10.  DoS Attacks on or via NTP

   Network time servers are generally not considered security-critical
   services, but under some circumstances NTP servers might be used to
   perpetrate a DoS attack.

   The most obvious such attack is to DoS the NTP servers themselves.
   Many end-systems have rather poor clock accuracy and so, without
   access to network time, their clock will naturally drift.  This can
   cause problems with distributed systems that rely on good clocks.
   For example, one commonly used revision control system can fail if it
   perceives the modification timestamp to be in the future.

   If the NTP servers relied on by a host can be subverted, either
   through compromising or impersonating them, then the attacker may be
   able to control the host's system clock.  This can cause many
   unexpected consequences, including the premature expiry of dated
   resources such as encryption or authentication keys.  This in turn
   can prevent access to other more critical services.

2.11.  Physical DoS

   The discussion thus far has centered on denial-of-service attacks
   perpetrated using the network.  However, computer systems are only as
   resilient as the weakest link.  It may be easier to deny service by
   causing a power failure, by cutting network cables, or by simply
   switching a system off, and so physical security is at least as
   important as network security.  Physical attacks can also serve as



Handley, et al.              Informational                     [Page 18]
^L
RFC 4732                   DoS Considerations              November 2006


   entry points for non-physical DoS, for instance, by reducing the
   resources available to deal with overcapacity.

2.12.  Social Engineering DoS

   The weakest link may also be human.  In defending against DoS, the
   possibility of denial-of-service through social engineering should
   not be neglected, such as convincing an employee to make a
   configuration change that prevents normal operation.

2.13.  Legal DoS

   Computer systems cannot be considered in isolation from the social
   and legal systems in which they operate.  This document focuses
   primarily on the technical issues, but we note that "cease and
   desist" letters, government censorship, and other legal mechanisms
   also touch on denial-of-service issues.

2.14.  Spam and Black-Hole Lists

   Unsolicited commercial email, also known as "spam", can effectively
   cause denial-of-service to email systems.  While the intent is not
   denial-of-service, the large amount of unwanted mail can waste the
   recipient's time or cause legitimate email to fail to be noticed
   amongst all the background noise.  If spam filtering software is
   used, some level of false positives is to be expected, and so these
   messages are effectively denied service.

   One mechanism to reduce spam is the use of black-hole lists.  The IP
   addresses of dial-up ISPs or mail servers used to originate or relay
   spam are added to black-hole lists.  The recipients of mail choose to
   consult these lists and reject spam if it originates or is relayed by
   systems on the list.  One significant problem with such lists is that
   it may be possible for an attacker to cause a victim to be black-
   hole-listed, even if the victim was not responsible for relaying
   spam.  Thus, the black-hole list itself can be a mechanism for
   effecting a DoS attack.  Note that every black-hole list has its own
   policy regarding additions, and some are less susceptible to this DoS
   attack than others.  Consumers of black-hole list technology are
   advised to investigate these policies before they subscribe.  Similar
   considerations apply to feeds of bad BGP bad route advertisements.










Handley, et al.              Informational                     [Page 19]
^L
RFC 4732                   DoS Considerations              November 2006


3.  Attack Amplifiers

   Many of the attacks described above rely on sending sufficient
   traffic to overwhelm the victim.  Such attacks are made much easier
   by the existence of "attack amplifiers", where an attacker can send
   traffic from the spoofed source address of the victim and cause
   larger responses to be returned to the victim.  A detailed discussion
   of such reflection attacks can be found in [35].

3.1.  Methods of Attack Amplification

   The simplest such attack was the "smurf" attack [22], where an ICMP
   echo request packet with the spoofed source address of the victim is
   sent to the subnet-broadcast address of a network to be used as an
   amplifier.  Every system on that subnet then responds with an ICMP
   echo response that returns to the victim.  Smurf attacks are no
   longer such a serious problem, as these days routers usually drop
   such packets and end-systems do not respond to them.

   An alternative form of attack amplifier is typified by a DNS
   reflection attack.  An attacker sends a DNS request to a DNS server
   requesting resolution of a domain name.  Again the source address of
   the request is the spoofed address of the victim.  The request is
   carefully chosen so that the size of the response is significantly
   greater than the size of the request, thereby providing the
   amplification.  As an aside, it is interesting to note that the
   largest DNS responses tend to be those incorporating DNSsec
   authentication information.  This attack amplifier can only be used
   by an attacker with the ability to spoof the source address of the
   victim.  However, we note that if the victim's DNS server is
   configured to relay requests from external clients, it may be
   possible to cause it to congest its own incoming network link.

   Another variant of attack amplifier involves amplification through
   retransmission.  This is typified by a TCP amplification attack known
   as "bang.c".  The attacker sends a spoofed TCP SYN with the source
   address of the victim to an arbitrary TCP server.  The server will
   respond with a SYN|ACK that is sent to the victim, and when no final
   ACK is received to complete the handshake, the SYN|ACK will be
   retransmitted a number of times.  Typically, this attack uses a very
   large list of arbitrarily chosen servers as reflectors.  For the
   attack to be successful, the reflector must not receive a RST from
   the victim in response to the SYN|ACK.  However, if the attack
   traffic sufficiently overwhelms the server or access link to the
   server, then packet loss will ensure that many reflectors do not
   receive a RST in response to their SYN|ACK, and so continue to
   retransmit.  The attack can be exacerbated by firewalls that silently
   drop the incoming SYN|ACK without sending a RST.



Handley, et al.              Informational                     [Page 20]
^L
RFC 4732                   DoS Considerations              November 2006


   Care must also be taken with services that relay requests.  If an
   attacker can send a request to a proxy, and that proxy now attempts
   to connect to a victim whose address is chosen by the attacker, then,
   if the proxy repeatedly resends the request when receiving no answer,
   this can also serve as an attack amplifier.

   Another variant of amplification occurs in protocols that include,
   within the protocol payload, an IP address or name of host to which
   subsequent messages should be sent.  An example of such a protocol is
   the Session Initiation Protocol (SIP) [50], which carries a payload
   defined by the Session Description Protocol (SDP) [51].  The SDP
   payload of the SIP message conveys the IP address and port to which
   media packets, typically encoded using the Real Time Transport
   Protocol (RTP) [52], are sent.

   To launch this attack, an attacker sends a protocol message, and sets
   the IP address within the payload to point to the attack target.  The
   recipient of the message will generate subsequent traffic to that IP
   address.  Depending on the protocol, this attack can provide
   substantial amplification properties.  In the specific case of SIP,
   if a caller makes calls to high-bandwidth media sources (such as a
   video server or streaming audio server), a single SIP INVITE packet,
   typically a few hundred bytes, can result in a nearly continuous
   stream of media packets at rates anywhere from a few kbits per second
   up to megabits per second.  This particular attack is called the
   "voice hammer".

   Unlike the other techniques described above, this technique does not
   require the attacker to modify packets or even spoof their source IP
   address.  This makes it easier to launch.

   This attack is prevented through careful protocol design.  Protocols
   should, whenever possible, avoid including IP addresses or hostnames
   within protocol payloads as addresses to which subsequent messaging
   should be sent.  Rather, when possible, messages should be sent to
   the source IP from which the protocol packet came.  If such a design
   is not possible, the protocol should include a handshake whereby it
   can be positively determined that the protocol entity at that IP
   address or hostname does, in fact, wish to receive that subsequent
   messaging.  That handshake itself needs to be lightweight (to avoid
   being the source of another DoS attack), and secured against the
   spoofing of the handshake response.

   Finally, a somewhat similar attack is possible with some protocols
   where one message leads to another message that is not sent as a
   reply to the source address of the first message.  This can be an





Handley, et al.              Informational                     [Page 21]
^L
RFC 4732                   DoS Considerations              November 2006


   issue with protocols to enable mobility, for example, and might
   permit an attacker to avoid ingress filtering.  Such protocols are
   notoriously difficult to get right.

3.2.  Strategies to Mitigate Attack Amplification

   In general, the architectural lessons to be learnt are simple:

   o  As far as possible, perform ingress filtering [7] [39] to prevent
      source address spoofing.

   o  Avoid designing protocols or mechanisms that can return
      significantly larger responses than the size of the request,
      unless a handshake is performed to validate the client's source
      address.  Such a handshake needs to incorporate an unpredictable
      nonce that is secure enough to mitigate the amplification effects
      of the protocol.

   o  All retransmission during initial connection setup should be
      performed by the client.

   o  Proxies should not arbitrarily relay requests to destinations
      chosen by a client.

   o  Avoid signaling third-party connections.  Any unavoidable third-
      party connections set up by a signaling protocol should
      incorporate lightweight validation before sending significant
      data.

4.  DoS Mitigation Strategies

   A general problem with DoS defense is that it is not in principle
   possible to distinguish between a flash crowd and a DoS attack.
   Indeed, having your site taken down by a flash crowd is probably a
   more common experience than having it DoS-ed -- so common it has
   acquired its own names: being Slashdotted or Farked, after the web
   sites that are common sources of flash crowds.  Thus, the first line
   of defense against DoS attacks must be to provision your service so
   that it can handle a foreseeable legitimate peak load.
   Underprovisioned sites are the easiest to take down.

   Specific strategies for DoS defense fall into two broad categories:

   1.  Avoiding allowing attacks that are better than generic resource
       consumption.

   2.  Minimizing the extent to which generic resource consumption
       attacks crowd out legitimate users.



Handley, et al.              Informational                     [Page 22]
^L
RFC 4732                   DoS Considerations              November 2006


   In the remainder of this section, we consider specific applications
   of these two approaches at a variety of levels of network system
   architecture.

4.1.  Protocol Design

4.1.1.  Don't Hold State for Unverified Hosts

   From an end-system server point of view, one simple aim is to avoid
   instantiating state without having completed a handshake with the
   client to validate their address, and as far as possible to push work
   and stateholding to client.  There are a number of techniques that
   might be used to do this, including SYN cookies [2] [14].  All
   client-server protocols should probably be designed to allow such
   techniques to be used, but the enabling of the mechanism should
   normally be at the server's discretion to avoid unnecessary work
   under normal circumstances.

4.1.2.  Make It Hard to Simulate a Legitimate User

   Other than having massive overcapacity, the only real defense against
   resource consumption attacks is to preferentially discriminate
   against attackers.  The general idea is to find something that
   legitimate users can do but attackers can't.  The most commonly
   proposed approaches include:

   1.  Puzzles: force the attacker to do some computation that would not
       be onerous for a single user but is too expensive to do en masse
       [14].

   2.  Reverse Turing tests: specialized puzzles that are hard for
       machines to do but easy for humans, thus making automated attacks
       hard [13].

   3.  Reachability testing: force the proposed client to demonstrate
       that it can receive traffic at a given IP address.  This makes it
       easier to trace attackers.

   All of these techniques have substantial limitations.  Puzzles tend
   to discriminate against legitimate users with slow computers.  In
   addition, the wide availability of remotely controlled compromised
   machines ("bots") means that attackers have ample computing power at
   their disposal.  There has been substantial work in attacking reverse
   Turing tests automatically, thus making them of limited
   applicability.  Finally, reachability testing is substantially
   weakened by bots because the attacker does not need to hide his
   source address.




Handley, et al.              Informational                     [Page 23]
^L
RFC 4732                   DoS Considerations              November 2006


4.1.3.  Graceful Routing Degradation

   A goal with routing protocols is that of graceful degradation in
   overload, and automatic recovery after the source of the overload has
   been remedied.  Some routing protocols satisfy this goal more than
   others.  Although RIP [53] doesn't scale well, if a router runs out
   of memory when receiving a RIP route, it can just drop the route and
   send an infinite metric to its peers.  The route will later be
   refreshed, and if the original source of the problem has been
   resolved, the router will now be able to process it correctly.

   On the other hand, BGP is stateful in the sense that a peer assumes
   you have processed or chosen to filter any route that it sent you.
   There is no mechanism to refresh state in the base BGP spec, and even
   the later route refresh option [3] is hard to use in the presence of
   overload.  A BGP router that cannot store a route it received has two
   choices: completely restart BGP or shut down one or more peerings
   [26].  This means that the effects of a BGP overload are rather more
   severe than they need to be, and so amplifies the effect of any
   attack.

   In general, few routing protocol designs actively consider the
   possible behaviour of routers under overload conditions; this should
   be an explicit part of future routing protocol designs.  Although
   precise details should clearly be left to implementors, the protocol
   design needs to give them the capability to do their job properly.

4.1.4.  Autoconfiguration and Authentication

   Autoconfiguration mechanisms greatly ease deployment, and are
   increasingly necessary as the number of networked devices grows
   beyond what can be managed manually.  However, it should be
   recognised that unauthenticated autoconfiguration opens up many
   avenues for attack.  There is a clear tension between ease of
   configuration and security of configuration, especially because there
   are environments in which it is desirable for units to operate with
   effectively no authentication (e.g., airport hotspots).  Future
   autoconfiguration protocols should consider the need to allow
   different end-systems to operate at different points in this spectrum
   within the same autoconfiguration framework.  However, this also
   implies that the network elements should avoid acting for
   unauthenticated hosts, instead just letting them access the network
   more or less directly.








Handley, et al.              Informational                     [Page 24]
^L
RFC 4732                   DoS Considerations              November 2006


4.2.  Network Design and Configuration

   In general, networks should be provisioned with private, out-of-band
   access to console or control ports so that such control facilities
   will be available in the face of a DoS attack launched against either
   the control or data plane of the (in-band) network.  Typically, such
   out-of-band networks are provisioned on a separate infrastructure for
   exactly this purpose.  Out-of-band access is a crucial capability for
   DoS mitigation, since many of the typical redundancy and capacity
   management techniques (such as prioritizing routing or network
   management traffic) fail during such attacks.  In addition, many
   redundancy protocols such as VRRP [47] can fail during such attacks
   as they may be unable to keep adjacencies alive.

   There are several default configuration settings that can also be
   exploited to generate several of the attacks outlined in this
   document.  For example, some vendors may have features such as IP
   redirect, directed broadcast, and proxy ARP enabled by default.
   Similar defaults, such as publicly readable SNMP [48] communities
   (e.g., "public") can be used to reveal otherwise confidential
   information to a prospective attacker.  Finally, other
   unauthenticated configuration management protocols such as TFTP [49]
   should be avoided if possible; at the very least access to TFTP
   configuration archives should be protected and TFTP should be
   filtered at administrative boundaries.  Finally, since many of the
   password encryption techniques used by router vendors are reversible,
   keeping such passwords on a configuration archive (as part of a
   configuration file), even in the encrypted form written by the
   router, can lead to unauthorized access if the archive is
   compromised.

4.2.1.  Redundancy and Distributed Service

   A basic principle of designing systems to handle failure is to have
   redundant servers that can take over when one fails.  This is equally
   true in the case of DoS attacks, which often focus on a given server
   and/or link.  If service delivery points can be distributed across
   the network, then it becomes much harder to attack the entire
   service.  In particular, this makes attacks on a single network link
   more difficult.

4.2.2.  Authenticate Routing Adjacencies

   In general, cryptographic authentication mechanisms are too costly to
   form the main part in DoS prevention.  However, routing adjacencies
   are too important to risk an attacker being able to inject bad
   routing information, which can affect more than the router in
   question.  Additional non-cryptographic mechanisms should then be



Handley, et al.              Informational                     [Page 25]
^L
RFC 4732                   DoS Considerations              November 2006


   used to avoid arbitrary end-systems being able to cause the router to
   spend CPU cycles on validating authentication data.

   For BGP, at the very least, this implies the use of TCP MD5 [9] or
   IPsec authentication, combined with the GTSM [8] to prevent eBGP
   association with non-immediate neighbors.  In the future, this will
   likely imply better authentication of the routing information itself.

4.2.3.  Isolate Router-to-Router Traffic

   As far as is feasible, router-to-router traffic should be isolated
   from data traffic.  How this should be implemented depends on the
   precise technologies available, both in the router and at the link
   layer.  The goal should be that failure of the link for data traffic
   should also cause failure for the routing traffic, but that an
   attacker cannot directly send packets to the control processor of the
   routers.

   A downside of this is that some diagnostic techniques (such as
   pinging consecutive routers to find the source of a delay) may no
   longer be possible.  Ideally, alternative mechanisms (which do not
   open up additional avenues for DoS) should be designed to replace
   such lost techniques.

4.3.  Router Implementation Issues

   Because a router can be considered as an end-system, it can
   potentially benefit from all the prevention mechanisms prescribed for
   end-system implementation.  However, one basic distinction between a
   router and a host is that the former implements routing protocols and
   forwards data, which in turn lead to additional router-specific
   implementation considerations.  The issues described below are meant
   to be illustrative and not exhaustive.

4.3.1.  Checking Protocol Syntax and Semantics

   Protocol syntax defines the formation of the protocol messages and
   the rules of exchanges.  The questions addressed by protocol syntax
   checking includes, but is not limited to, the following:

   1.  Who sent the message?

   2.  Does the content conform to the protocol format?

   3.  Was the message sent with correct timing?






Handley, et al.              Informational                     [Page 26]
^L
RFC 4732                   DoS Considerations              November 2006


   The first step in protocol syntax verification is to ensure that an
   incoming message was sent by a legitimate party.  There are multiple
   ways to perform this check.  One can verify the source IP address and
   even the MAC address of the message.  Utilizing the fact that eBGP
   peers are normally directly connected, one can also check the TTL
   value in a packet and discard any BGP updates packet whose TTL is
   less than some maximum value (typically, max TTL - 1) [8].
   Cryptographic authentication should also be used whenever available
   to verify that an incoming message is indeed from an expected sender.
   For BGP, at the very least, this implies the use of TCP MD5 [9] or
   IPsec authentication.

   In addition to the sender verification, it is also important to check
   the syntax of a received routing message, as opposed to assuming that
   all messages came in a correct format.  It happened in the past that
   routers crashed upon receiving ill-formed routing messages.  Such
   faults will be prevented by performing rigorous syntax checking.

4.3.2.  Consistency Checks

   Protocol semantics define the meaning of the message content, the
   interpretation of the values, and the actions to be taken according
   to the content.  Here is a simple example of using semantic checking.
   When a link failure causes a router in Autonomous System (AS) A to
   send a peer router B a withdrawal message for prefix P, B should make
   sure that any alternative path it finds to reach P does not go
   through A.  This simple check is shown to significantly improve BGP
   convergence time in many cases [42].

   Another example of using semantic checking against false routing
   injection is described in [44].  The basic idea is to attach to the
   route announcement for prefix P a list of the valid origin ASes.  Due
   to the rich connectivity in today's Internet topology, a remote AS
   will receive routing updates from multiple different paths and can
   check to see whether each update carries the identical origin AS
   list.  Although a false origin may announce reachability to P, or
   alter the origin AS list, it would be difficult, if not impossible,
   to block the correct updates from propagating out, and thus remote
   ASes can detect the existence of false updates by observing the
   inconsistency of the received origin AS lists for P.  Research
   studies show that the "allowed origin list" test can effectively
   detect the majority of falsely originated updates.

   Generally speaking, verifying the validity of BGP routes can be
   challenging because BGP is policy driven and policies of individual
   ISPs are not known in most cases.  But assuming that policies do not
   change in short time scale, in principle one could verify new updates
   against observed routes from the recent past, which reflect the



Handley, et al.              Informational                     [Page 27]
^L
RFC 4732                   DoS Considerations              November 2006


   routing policies in place.  Research work is needed to explore this
   direction.

   Note that while the above steps are all fairly simple and don't
   really "bulletproof" the protocol, each adds some degree of
   protection.  As such, the combination of the above techniques can
   result in an effective reduction in the probability of undetected
   faults.

4.3.3.  Enhance Router Robustness through Operational Adjustments

   There exist a number of configuration tunings that can enhance
   robustness of BGP operations.  One example is to let BGP peers
   coordinate the setting of a limit on the number of prefixes that one
   BGP speaker will send to its peer [43].  Although such a check does
   not validate the prefix owned by each peer, it can prevent false
   announcements of large numbers of invalid routes.  Had all BGP
   routers been configured with this simple checking earlier, several
   large-scale routing outages in the past could have been prevented.
   Note, however, that care must be taken with hard limits of this type
   because they can be used to mount a DoS because implementations often
   discard excess routes indiscriminately, thus potentially causing
   black-holing of correct routes.

   Another example of useful configuration tuning is to adjust the BGP's
   KeepAlive and Hold Timer values to minimize BGP peering session
   resets.  Previous measurements show that heavy traffic load, such as
   those caused by worms, can cause BGP KeepAlive messages to be delayed
   or dropped, which in turn cause BGP peering session breakdown.  Such
   load-induced session breaks and re-establishments can lead to an
   excessive amount of BGP updates during the periods when stable
   routing is needed most.

4.3.4.  Proper Handling of Router Resource Exhaustion

   In addition to the resource exhaustion problems that are generally
   apply to all end-systems, as described in Section 2, router
   implementations must also take special care in handling resource
   exhaustions when they occur in order to keep the router operating
   despite the problem.  For example, under normal operations a router
   does not require a large cache to hold outstanding ARP requests
   because the replies are normally received within a few milliseconds.
   However, certain conditions can lead to ARP cache exhaustion, for
   example, during a virus attack where many packets are sent to non-
   existing IP addresses, thus there are no ARP replies to the requests
   for those addresses.  Such phenomena have happened in the past and
   led to routers failing to forward packets.




Handley, et al.              Informational                     [Page 28]
^L
RFC 4732                   DoS Considerations              November 2006


   Another example is queue management.  Many high-end routers are
   designed so that most packets can be handled purely in specialized
   processors (Application-Specific Integrated Circuit (ASICs), Field
   Programmable Gate-Arrays (FPGAs), etc.).  However, exceptional
   packets must be routed to a supporting general purpose CPU for
   handling.  On some such systems, it may be possible mount a low-
   effort DoS attack by saturating the queues between the specialized
   hardware and the supporting processor.

   So the attack vector on routers/network devices is a low packets-
   per-second (PPS) queue saturation attack on the ASIC's raw queue
   structure.  The countermeasure here is to have multiple such queues
   designed in such a way that it's difficult for an attacker to arrange
   to fill multiple queues [45].

4.4.  End-System Implementation Issues

4.4.1.  State Lookup Complexity

   Any system that instantiates per-connection state should take great
   care to implement state-lookup mechanisms in such a way that
   performance cannot be controlled by the attacker.  One way to achieve
   this is to use hash tables where the hash mechanism is keyed in such
   a way that the attacker cannot instantiate a large number of flows in
   the same hash bucket.

4.4.1.1.  Avoid Livelock

   Most operating systems use network interrupts to receive data from
   the network, which is a good solution if the host spends only a small
   amount of its time handling network traffic.  However, this leaves
   the host open to livelock [33], where under heavy load the OS spends
   all its time handling interrupts and no time doing the work needed to
   handle the traffic at the application level.  Server operating
   systems should consider using network polling at times of heavy load,
   rather than being interrupt-driven, and should be carefully
   architected so that as far as reasonably possible, traffic received
   by the OS is processed to completion or very cheaply discarded.

4.4.1.2.  Use Unpredictable Values for Session IDs

   Most recent TCP implementations use fairly good random mechanisms for
   allocating the TCP initial sequence numbers.  In general, any
   dynamically allocated value used purely to identify a communication
   session should be allocated using an unpredictable mechanism, as this
   increases the search space for an attacker that wishes to disrupt
   ongoing communications.  Thus, the dynamically allocated port of the
   active end of a TCP connection might also be randomly allocated.



Handley, et al.              Informational                     [Page 29]
^L
RFC 4732                   DoS Considerations              November 2006


   With DNS, the ID that is used to match responses with requests should
   also be randomly generated.  However, as the ID field is only 16
   bits, the protection is rather limited.

4.4.2.  Operational Issues

4.4.2.1.  Eliminate Bad Traffic Early

   Many DoS attacks are generic bandwidth consumption attacks that
   operate by clogging the link that connects the victim server to the
   Internet.  Filtering these attacks at the server does no good because
   the traffic has already traversed the link that is the scarce
   resource.  Such flows need to be filtered at some point closer to the
   attacker.  Where possible, operators should filter out obviously bad
   traffic.  In particular, they should perform ingress filtering [7].

4.4.2.2.  Establish a Monitoring Framework

   Network operators are strongly encouraged to establish a monitoring
   framework to detect and log abnormal network activity.  One cannot
   defend against an attack that one doesn't detect or understand.  Such
   monitoring tools can be used to set a baseline of "normal" traffic,
   and can be used to detect aberrant flows and determine the type and
   source of the aberrant flows.  This is extremely helpful when
   responding to distributed DoS attacks or a flash crowd, and should be
   in place prior to the event.

5.  Conclusions

   In this document, we have highlighted possible avenues for DoS
   attacks on networks and networked systems, with the aim of
   encouraging protocol designers and network engineers towards designs
   that are more robust.  We have discussed partial solutions that
   reduce the effectiveness of attacks, and highlighted how some partial
   solutions can be taken advantage of by attackers to perpetrate
   alternative attacks.

   Our focus has primarily been on protocol and network architecture
   issues, but there are many things that network and service operators
   can do to lessen the threat.  Further advice and information for
   network operators can be found in [24] [39] [25].

   It is our hope that this document will spur discussion leading to
   architectural solutions that reduce the succeptibility of all
   Internet systems to denial-of-service attacks.






Handley, et al.              Informational                     [Page 30]
^L
RFC 4732                   DoS Considerations              November 2006


6.  Security Considerations

   This entire document is about security.

7.  Acknowledgements

   We are very grateful to Vern Paxson, Paul Vixie, Rob Thomas, Dug
   Song, George Jones, Jari Arkko, Geoff Huston, and Barry Greene for
   their constructive comments on earlier versions of this document.

8.  Normative References

   [1]  J. Abley, "Hierarchical Anycast for Global Service
        Distribution", http://www.isc.org/index.pl?/pubs/tn/
        index.pl?tn=isc-tn-2003-1.txt.

   [2]  D.J. Bernstein, "SYN Cookies", http://cr.yp.to/syncookies.html.

   [3]  Chen, E., "Route Refresh Capability for BGP-4", RFC 2918,
        September 2000.

   [4]  Deering, S., "Host extensions for IP multicasting", STD 5, RFC
        1112, August 1989.

   [5]  Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS)
        Protocol Version 1.1", RFC 4346, April 2006.

   [6]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
        "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
        Specification (Revised)", RFC 4601, August 2006.

   [7]  Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating
        Denial of Service Attacks which employ IP Source Address
        Spoofing", BCP 38, RFC 2827, May 2000.

   [8]  Gill, V., Heasley, J., and D. Meyer, "The Generalized TTL
        Security Mechanism (GTSM)", RFC 3682, February 2004.

   [9]  Heffernan, A., "Protection of BGP Sessions via the TCP MD5
        Signature Option", RFC 2385, August 1998.

   [10] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4
        (BGP-4)", RFC 4271, January 2006.

   [11] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route Flap
        Damping", RFC 2439, November 1998.





Handley, et al.              Informational                     [Page 31]
^L
RFC 4732                   DoS Considerations              November 2006


   [12] Waitzman, D., Partridge, C., and S. Deering, "Distance Vector
        Multicast Routing Protocol", RFC 1075, November 1988.

   [13] L. von Ahn, M. Blum, N. Hopper, and J. Langford.  CAPTCHA: Using
        hard AI problems for security.  In Proceedings of Eurocrypt,
        2003.

9.  Informative References

   [14] T. Aura, P. Nikander, J. Leiwo, "DOS-resistant authentication
        with client puzzles", In B. Christianson, B. Crispo, and M. Roe,
        editors, Proceedings of the 8th International Workshop on
        Security Protocols, Lecture Notes in Computer Science,
        Cambridge, UK, April 2000.

   [15] J. Bellardo, S. Savage, "802.11 Denial-of-Service Attacks: Real
        Vulnerabilities and Practical Solutions", Proceedings of the
        USENIX Security Symposium, Washington D.C., August 2003.

   [16] S.M. Bellovin, "Security Problems in the TCP/IP Protocol Suite",
        Computer Communication Review, Vol. 19, No. 2, pp. 32-48, April
        1989.

   [17] CCAIS/RNP Alertas do Cais ALR-19112002a, "Vulnerability in the
        sending requests control of Bind versions 4 and 8 allows DNS
        spoofing",
        http://www.rnp.br/cais/alertas/2002/cais-ALR-19112002a.html.

   [18] CERT Advisory CA-1996-01, "UDP Port Denial-of-Service Attack",
        Feb 1996.

   [19] CERT Advisory CA-1996-21, "TCP SYN Flooding and IP Spoofing
        Attacks", Sept 1996.

   [20] CERT Advisory CA-2001-09, "Statistical Weaknesses in TCP/IP
        Initial Sequence Numbers", May 2001.

   [21] CERT Advisory CA-1996-26, "Denial-of-Service Attack via ping",
        Dec 1996.

   [22] CERT Advisory CA-1998-01, "Smurf IP Denial-of-Service Attacks",
        http://www.cert.org/advisories/CA-1998-01.html, Jan 1998.

   [23] CERT Incident Note IN-2000-05, "'mstream' Distributed Denial of
        Service Tool", May 2000.

   [24] CERT/CC - "Managing the Threat of Denial of Service Attacks",
        http://www.cert.org/archive/pdf/Managing_DoS.pdf.



Handley, et al.              Informational                     [Page 32]
^L
RFC 4732                   DoS Considerations              November 2006


   [25] CERT/CC - "Trends in Denial of Service Attack Technology",
        http://www.cert.org/archive/pdf/DoS_trends.pdf.

   [26] D.F. Chang, R. Govindan, J. Heidemann, "An Empirical Study of
        Router Response to Large Routing Table Load", Proceedings of the
        2nd Internet Measurement Workshop (IMW 2002), 2002.

   [27] Cisco Systems, "Configuring the BGP Maximum-Prefix Feature",
        Cisco Document ID: 25160,
        http://www.cisco.com/warp/public/459/bgp-maximum-prefix.html.

   [28] Scott A Crosby and Dan S Wallach, "Denial of Service via
        Algorithmic Complexity Attacks", Proceedings of the USENIX
        Security Symposium, Washington D.C., August 2003.

   [29] Laurent Joncheray, "Simple Active Attack Against TCP", 5th
        USENIX Security Symposium, 1995.

   [30] M. Lough, "A Taxonomy of Computer Attacks with Applications to
        Wireless", PhD thesis, Virginia Polytechnic Institute, April
        2001.

   [31] Z. Mao, R. Govindan, G. Varghese, R. Katz, "Route Flap Dampening
        Exacerbates Internet Routing Convergence", Proceedings of ACM
        SIGCOMM, 2002.

   [32] Fenner, B., Ed., and D. Meyer, Ed., "Multicast Source Discovery
        Protocol (MSDP)", RFC 3618, October 2003.

   [33] J. Mogul, KK.  Ramakrishnan, "Eliminating Receive Livelock in an
        Interrupt-driven Kernel", ACM Transactions on Computer Systems,
        Vol 15, Number 3, pp. 217-252, 1997.

   [34] Watson, P., "Slipping in the Window: TCP Reset attacks",
        Presentation at 2004 CanSecWest,
        http://www.cansecwest.com/archives.html.

   [35] V. Paxson, "An Analysis of Using Reflectors for Distributed
        Denial-of-Service Attacks", Computer Communication Review 31(3),
        July 2001.

   [36] Joe Stewart, "DNS Cache Poisoning - The Next Generation", Jan 27
        2003, http://www.lurhq.com/dnscache.pdf.

   [37] Stewart, R., Ed., and M. Dalal, Ed., "Improving TCP's Robustness
        to Blind In-Window Attacks", Work in Progress, June 2006.





Handley, et al.              Informational                     [Page 33]
^L
RFC 4732                   DoS Considerations              November 2006


   [38] P. Vixie, G. Sneeringer, M. Schleifer, "Events of 21-Oct-2002",
        http://f.root-servers.org/october21.txt.

   [39] P. Vixie, "Securing the Edge",
        http://www.icann.org/committees/security/sac004.txt.

   [40] D. Wessels, "Running An Authoritative-Only BIND Nameserver",
        http://www.isc.org/index.pl?/pubs/tn/
        index.pl?tn=isc-tn-2002-2.txt.

   [41] M. Zalewski, "Strange Attractors and TCP/IP Sequence Number
        Analysis",
        http://www.bindview.com/Services/Razor/Papers/2001/tcpseq.cfm.

   [42] D. Pei, X. Zhao, L. Wang, D. Massey, A. Mankin, F. S. Wu, and L.
        Zhang.  Improving BGP Conver-gence Through Assertions Approach.
        In Proc. of IEEE INFOCOM, June 2002.

   [43] Chavali, S., Radoaca, V., Miri, M., Fang, L., and S. Hares,
        "Peer Prefix Limits Exchange in BGP", Work in Progress, April
        2004.

   [44] X. Zhao, D. Massey, A. Mankin, S.F. Wu, D. Pei, L. Wang, L.
        Zhang, "BGP Multiple Origin AS (MOAS) Conflicts",
        http://nanog.org/mtg-0110/lixia.html, 2001.

   [45] Cisco Systems, "Building Security Into the Hardware",
        ftp://ftp-eng.cisco.com/cons/isp/security/CPN-Summit-2004/
        Paris-Sept-04/SE14-BUILDING-SECURITY-INTO-THE-HARDWARE-
        c1_8_30_04.pdf, 2004.

   [46] Ylonen, T. and C. Lonvick, "The Secure Shell (SSH) Protocol
        Architecture", RFC 4251, January 2006.

   [47] Hinden, R., "Virtual Router Redundancy Protocol (VRRP)", RFC
        3768, April 2004.

   [48] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for
        Describing Simple Network Management Protocol (SNMP) Management
        Frameworks", STD 62, RFC 3411, December 2002.

   [49] Malkin, G. and A. Harkin, "TFTP Timeout Interval and Transfer
        Size Options", RFC 2349, May 1998.

   [50] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
        Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
        Session Initiation Protocol", RFC 3261, June 2002.




Handley, et al.              Informational                     [Page 34]
^L
RFC 4732                   DoS Considerations              November 2006


   [51] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
        Description Protocol", RFC 4566, July 2006.

   [52] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
        "RTP: A Transport Protocol for Real-Time Applications", STD 64,
        RFC 3550, July 2003.

   [53] Hedrick, C., "Routing Information Protocol", RFC 1058, June
        1988.










































Handley, et al.              Informational                     [Page 35]
^L
RFC 4732                   DoS Considerations              November 2006


Appendix A.  IAB Members at the Time of This Writing

   o  Bernard Aboba

   o  Loa Andersson

   o  Brian Carpenter

   o  Leslie Daigle

   o  Elwyn Davies

   o  Kevin Fall

   o  Olaf Kolkman

   o  Kurtis Lindvist

   o  David Meyer

   o  David Oran

   o  Eric Rescorla

   o  Dave Thaler

   o  Lixia Zhang
























Handley, et al.              Informational                     [Page 36]
^L
RFC 4732                   DoS Considerations              November 2006


Authors' Addresses

   Mark J. Handley, Ed.
   UCL
   Gower Street
   London  WC1E 6BT
   UK

   EMail: M.Handley@cs.ucl.ac.uk


   Eric Rescorla, Ed.
   Network Resonance
   2483 E. Bayshore #212
   Palo Alto  94303
   USA

   EMail: ekr@networkresonance.com


   Internet Architecture Board
   IAB

   EMail: iab@ietf.org



























Handley, et al.              Informational                     [Page 37]
^L
RFC 4732                   DoS Considerations              November 2006


Full Copyright Statement

   Copyright (C) The IETF Trust (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST,
   AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
   THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
   IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
   PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.






Handley, et al.              Informational                     [Page 38]
^L