waf_rule.tf 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. resource "aws_wafregional_rule" "detect_admin_access" {
  2. name = "${var.waf_prefix}-generic-detect-admin-access"
  3. metric_name = "${var.waf_prefix}genericdetectadminaccess"
  4. predicate {
  5. data_id = aws_wafregional_ipset.admin_remote_ipset.id
  6. negated = true
  7. type = "IPMatch"
  8. }
  9. predicate {
  10. data_id = aws_wafregional_byte_match_set.match_admin_url.id
  11. negated = false
  12. type = "ByteMatch"
  13. }
  14. }
  15. resource "aws_wafregional_rule" "detect_bad_auth_tokens" {
  16. name = "${var.waf_prefix}-generic-detect-bad-auth-tokens"
  17. metric_name = "${var.waf_prefix}genericdetectbadauthtokens"
  18. predicate {
  19. data_id = aws_wafregional_byte_match_set.match_auth_tokens.id
  20. negated = false
  21. type = "ByteMatch"
  22. }
  23. }
  24. resource "aws_wafregional_rule" "detect_blacklisted_ips" {
  25. name = "${var.waf_prefix}-generic-detect-blacklisted-ips"
  26. metric_name = "${var.waf_prefix}genericdetectblacklistedips"
  27. predicate {
  28. data_id = aws_wafregional_ipset.blacklisted_ips.id
  29. negated = false
  30. type = "IPMatch"
  31. }
  32. }
  33. resource "aws_wafregional_rule" "detect_php_insecure" {
  34. name = "${var.waf_prefix}-generic-detect-php-insecure"
  35. metric_name = "${var.waf_prefix}genericdetectphpinsecure"
  36. predicate {
  37. data_id = aws_wafregional_byte_match_set.match_php_insecure_uri.id
  38. negated = false
  39. type = "ByteMatch"
  40. }
  41. predicate {
  42. data_id = aws_wafregional_byte_match_set.match_php_insecure_var_refs.id
  43. negated = false
  44. type = "ByteMatch"
  45. }
  46. }
  47. resource "aws_wafregional_rule" "detect_rfi_lfi_traversal" {
  48. name = "${var.waf_prefix}-generic-detect-rfi-lfi-traversal"
  49. metric_name = "${var.waf_prefix}genericdetectrfilfitraversal"
  50. predicate {
  51. data_id = aws_wafregional_byte_match_set.match_rfi_lfi_traversal.id
  52. negated = false
  53. type = "ByteMatch"
  54. }
  55. }
  56. resource "aws_wafregional_rule" "detect_ssi" {
  57. name = "${var.waf_prefix}-generic-detect-ssi"
  58. metric_name = "${var.waf_prefix}genericdetectssi"
  59. predicate {
  60. data_id = aws_wafregional_byte_match_set.match_ssi.id
  61. negated = false
  62. type = "ByteMatch"
  63. }
  64. }
  65. resource "aws_wafregional_rule" "enforce_csrf" {
  66. name = "${var.waf_prefix}-generic-enforce-csrf"
  67. metric_name = "${var.waf_prefix}genericenforcecsrf"
  68. predicate {
  69. data_id = aws_wafregional_byte_match_set.match_csrf_method.id
  70. negated = false
  71. type = "ByteMatch"
  72. }
  73. predicate {
  74. data_id = aws_wafregional_size_constraint_set.csrf_token_set.id
  75. negated = true
  76. type = "SizeConstraint"
  77. }
  78. predicate {
  79. data_id = aws_wafregional_byte_match_set.match_saml_url.id
  80. negated = true
  81. type = "ByteMatch"
  82. }
  83. predicate {
  84. data_id = aws_wafregional_byte_match_set.match_api_url.id
  85. negated = true
  86. type = "ByteMatch"
  87. }
  88. predicate {
  89. data_id = aws_wafregional_byte_match_set.match_login_url.id
  90. negated = true
  91. type = "ByteMatch"
  92. }
  93. }
  94. resource "aws_wafregional_rule" "mitigate_sqli" {
  95. name = "${var.waf_prefix}-generic-mitigate-sqli"
  96. metric_name = "${var.waf_prefix}genericmitigatesqli"
  97. predicate {
  98. data_id = aws_wafregional_sql_injection_match_set.sql_injection_match_set.id
  99. negated = false
  100. type = "SqlInjectionMatch"
  101. }
  102. }
  103. resource "aws_wafregional_rule" "mitigate_xss" {
  104. name = "${var.waf_prefix}-generic-mitigate-xss"
  105. metric_name = "${var.waf_prefix}genericmitigatexss"
  106. predicate {
  107. data_id = aws_wafregional_xss_match_set.xss_match_set.id
  108. negated = false
  109. type = "XssMatch"
  110. }
  111. }
  112. resource "aws_wafregional_rule" "restrict_sizes" {
  113. name = "${var.waf_prefix}-generic-restrict-sizes"
  114. metric_name = "${var.waf_prefix}genericrestrictsizes"
  115. predicate {
  116. data_id = aws_wafregional_size_constraint_set.size_restrictions.id
  117. negated = false
  118. type = "SizeConstraint"
  119. }
  120. predicate {
  121. data_id = aws_wafregional_byte_match_set.match_saml_url.id
  122. negated = true
  123. type = "ByteMatch"
  124. }
  125. predicate {
  126. data_id = aws_wafregional_byte_match_set.match_admin_company_url.id
  127. negated = true
  128. type = "ByteMatch"
  129. }
  130. predicate {
  131. data_id = aws_wafregional_byte_match_set.match_api_url.id
  132. negated = true
  133. type = "ByteMatch"
  134. }
  135. }