Diferència entre revisions de la pàgina «Grup 3 - Implementar WAF (Azure)»
Línia 30: | Línia 30: | ||
L'OWASP ModSecurity Core Rule Set (CRS) és un conjunt de regles genèriques de detecció d'atacs per utilitzar-les amb ModSecurity. El CRS pretén protegir les aplicacions web d'una àmplia gamma d'atacs, inclòs el Top Ten OWASP, amb un mínim d'alertes falses. El CRS proporciona protecció contra moltes categories d'atac habituals, com ara injecció SQL, Cross Site Scripting, inclusió de fitxers locals, etc. | L'OWASP ModSecurity Core Rule Set (CRS) és un conjunt de regles genèriques de detecció d'atacs per utilitzar-les amb ModSecurity. El CRS pretén protegir les aplicacions web d'una àmplia gamma d'atacs, inclòs el Top Ten OWASP, amb un mínim d'alertes falses. El CRS proporciona protecció contra moltes categories d'atac habituals, com ara injecció SQL, Cross Site Scripting, inclusió de fitxers locals, etc. | ||
− | Afegirem les instruccions necessàries dins el nostre [[Grup 3 - Implementar HTTPS i HSTS (HTTPS only) (Azure)#anchor-dockerfile|Dockerfile]] per tal que la imatge emprada pel servei de ''reverse proxy'' ja inclogui aquest paquet de regles addicionals recomanades per OWASP. Descarreguem la versió 3.3.2 (la més nova) directament des de la pàgina de ''releases'' del Github, la descomprimim i reanomenem l'arxiu de configuració d'exemple perquè sigui un arxiu <code>.conf</code>, a continuació afegim totes les noves regles al | + | Afegirem les instruccions necessàries dins el nostre [[Grup 3 - Implementar HTTPS i HSTS (HTTPS only) (Azure)#anchor-dockerfile|Dockerfile]] per tal que la imatge emprada pel servei de ''reverse proxy'' ja inclogui aquest paquet de regles addicionals recomanades per OWASP. Descarreguem la versió 3.3.2 (la més nova) directament des de la pàgina de ''releases'' del Github, la descomprimim i reanomenem l'arxiu de configuració d'exemple perquè sigui un arxiu <code>.conf</code>, a continuació afegim totes les noves regles al directori de ModSecurity. |
− | <syntaxhighlight lang="docker" line start="16" highlight="2-3,7- | + | <syntaxhighlight lang="docker" line start="16" highlight="2-3,7-17"> |
#Enable ModSecurity recommended configuration and add OWASP's CRS | #Enable ModSecurity recommended configuration and add OWASP's CRS | ||
ENV CRSDIR=/etc/owasp-modsecurity-crs | ENV CRSDIR=/etc/owasp-modsecurity-crs | ||
Línia 39: | Línia 39: | ||
sed -i '/SecRuleEngine DetectionOnly/ s//SecRuleEngine On/g' /etc/modsecurity/modsecurity.conf; \ | sed -i '/SecRuleEngine DetectionOnly/ s//SecRuleEngine On/g' /etc/modsecurity/modsecurity.conf; \ | ||
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v${CRSVER}.tar.gz -P ${CRSDIR}/; \ | wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v${CRSVER}.tar.gz -P ${CRSDIR}/; \ | ||
− | tar - | + | tar -xvpzf ${CRSDIR}/v${CRSVER}.tar.gz -C ${CRSDIR}/ --strip-components=1; \ |
− | rm ${CRSDIR}/v${CRSVER}.tar.gz; \ | + | ls -la ${CRSDIR}; \ |
− | mv ${CRSDIR}/ | + | rm -f ${CRSDIR}/v${CRSVER}.tar.gz; \ |
+ | mv -f ${CRSDIR}/crs-setup.conf.example ${CRSDIR}/crs-setup.conf; \ | ||
+ | mv -f ${CRSDIR}/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example ${CRSDIR}/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf; \ | ||
+ | mv -f ${CRSDIR}/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example ${CRSDIR}/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf; \ | ||
+ | mv -f ${CRSDIR}/crs-setup.conf /etc/modsecurity/crs/; \ | ||
+ | mv -f ${CRSDIR}/rules/*.conf /etc/modsecurity/crs/; \ | ||
+ | mv -f ${CRSDIR}/rules/*.data /etc/modsecurity/crs/; \ | ||
+ | rm -fr ${CRSDIR}; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisió del 02:22, 25 març 2022
Tornar a Projecte IETI Cloud - Grup 3.
Tasca
28. Implementar un Web Application Firewall sobre cloud extern (Azure).
Informe
Modificarem la nostra configuració desplegada sobre la màquina d'Azure per tal d'afegir un WAF i protegir els nostres serveis amb algunes regles.
Modificació del servei Reverse Proxy afegint ModSecurity
En primer lloc, per afegir ModSecurity al nostre servei de reverse proxy haurem de modificar la Dockerfile que ens construeix la imatge.
4 #Update, then install Apache2 and other useful tools
5 RUN set -eux; \
6 apt update; \
7 apt install -y \
8 apache2 \
9 libapache2-mod-security2 \
10 nano
A continuació haurem d'activar les regles recomanades de ModSecurity per tal que estiguen disponibles i habilitades. També canviarem al mode de ModSecurity de DetectionOnly a On per tal d'activar la política de bloqueig en tots els potencials atacs.
16 #Enable ModSecurity recommended configuration
17 RUN set -eux; \
18 mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf; \
19 sed -i '/SecRuleEngine DetectionOnly/ s//SecRuleEngine On/g' /etc/modsecurity/modsecurity.conf;
Un cop reconstruïm la imatge amb docker-compose up --build
, el nostre servei de reverse proxy amb Apache ja tindrà disponible les opcions de ModSecurity.
Seguretat amb OWASP ModSecurity Core Rule Set
L'OWASP ModSecurity Core Rule Set (CRS) és un conjunt de regles genèriques de detecció d'atacs per utilitzar-les amb ModSecurity. El CRS pretén protegir les aplicacions web d'una àmplia gamma d'atacs, inclòs el Top Ten OWASP, amb un mínim d'alertes falses. El CRS proporciona protecció contra moltes categories d'atac habituals, com ara injecció SQL, Cross Site Scripting, inclusió de fitxers locals, etc.
Afegirem les instruccions necessàries dins el nostre Dockerfile per tal que la imatge emprada pel servei de reverse proxy ja inclogui aquest paquet de regles addicionals recomanades per OWASP. Descarreguem la versió 3.3.2 (la més nova) directament des de la pàgina de releases del Github, la descomprimim i reanomenem l'arxiu de configuració d'exemple perquè sigui un arxiu .conf
, a continuació afegim totes les noves regles al directori de ModSecurity.
16 #Enable ModSecurity recommended configuration and add OWASP's CRS
17 ENV CRSDIR=/etc/owasp-modsecurity-crs
18 ENV CRSVER=3.3.2
19 RUN set -eux; \
20 mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf; \
21 sed -i '/SecRuleEngine DetectionOnly/ s//SecRuleEngine On/g' /etc/modsecurity/modsecurity.conf; \
22 wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v${CRSVER}.tar.gz -P ${CRSDIR}/; \
23 tar -xvpzf ${CRSDIR}/v${CRSVER}.tar.gz -C ${CRSDIR}/ --strip-components=1; \
24 ls -la ${CRSDIR}; \
25 rm -f ${CRSDIR}/v${CRSVER}.tar.gz; \
26 mv -f ${CRSDIR}/crs-setup.conf.example ${CRSDIR}/crs-setup.conf; \
27 mv -f ${CRSDIR}/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example ${CRSDIR}/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf; \
28 mv -f ${CRSDIR}/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example ${CRSDIR}/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf; \
29 mv -f ${CRSDIR}/crs-setup.conf /etc/modsecurity/crs/; \
30 mv -f ${CRSDIR}/rules/*.conf /etc/modsecurity/crs/; \
31 mv -f ${CRSDIR}/rules/*.data /etc/modsecurity/crs/; \
32 rm -fr ${CRSDIR};