4SA313 cvičení Ing. Pavlíčka
Zimní semestr 2023/24
Přidělení bodů
druh úkolu | počet bodů | poznámka |
---|---|---|
semestrální úloha | 30 | Více kontrolních bodů, obhajoba nejpozději do konce zkouškového období. |
průběžné testy | 40 | 7 testů a 2 domácí úkoly |
závěrečná zkouška | 30 |
Budou též nadstandardní úkoly, za jejichž splnění získají studenti body navíc.
Obsah cvičení, průběžné testy
Plán cvičení
týden | téma | |
---|---|---|
1. | 16. září | Hesla |
2. | 23. září | SSH |
3. | 30. září | Unix - základní příkazy, adresářová struktura |
4. | 7. října | Unix - procesy |
5. | 14. října | Certifikáty, certifikát pro server |
6. | 21. října | Osobní certifikáty - podepisování, šifrování |
7. | 28. října | státní svátek |
8. | 4. listopadu | inovační týden |
9. | 11. listopadu | Protokol TLS, konfigurace Apache |
10. | 18. listopadu | LDAP |
11. | 25. listopadu | Zabezpečení HTTPS, útoky na weby |
12. | 2. prosince | OpenPGP - podepisování, šifrování, správa klíčů |
13. | 9. prosince | rezerva |
Termíny testů
termín | zadání testu | body | komentář |
---|---|---|---|
23. 9.; 12:45 až 13:00 | test hesla | 5 | na začátku cvičení |
30. 9.; 16:00 až 22:00 | test na SSH - tunel | 3 | mimo cvičení, test v InSIS |
7. 10.; 16:00 až 22:00 | test na SSH - bastion | 2 | mimo cvičení, test v InSIS |
14. 10.; 16:00 až 22:00 | test na práva | 5 | mimo cvičení, test v InSIS |
21. 10.; 16:00 až 22:00 | test certifikáty | 5 | mimo cvičení, test v InSIS |
do 11. 11. 14:30 | viz sem. úloha | - | zvolit aplikaci pro semestrální úlohu |
do 11. 11. 23:59 | podepisování dokumentů a el. pošty | 5 | domácí úkol |
do 11. 11. 23:59 | přihlášení do VPN | 2 | domácí úkol |
18. 11.; 16:00 až 22:00 | test TLS | 5 | mimo cvičení, test v InSIS |
do 2. 12. 16:00 | viz sem. úloha | - | instalace aplikace na server (semestrální úloha) |
do 9. 12. 16:00 | viz sem. úloha | - | protokol o auditu (semestrální úloha) |
9. 12.; 16:00 až 22:00 | test PGP podepisování, klíče | 5 | mimo cvičení, test v InSIS |
do 16. 12. 23:59 | security.txt | 3 | domácí úkol |
Termíny z přednášek
Ještě si dovolím připomenout dva termíny z přednášek
termín | zadání testu | body | komentář |
---|---|---|---|
7. října; do 23:59 | zakázat přihlašování heslem | -2 | |
11. listopadu; do 23:59 | identifikační prostředky na NIA | 2 |
Aplikace adminer a ldap-account-manager
- adminer - stáhnout z https://www.adminer.org, URL aplikace
https://bisxxx.vse.cz/adminer/
- ldap-account-manager - balíček pro Debian,
- adminer dostupný ze školní sítě (146.102.0.0/16) a případně z vybraných IP adres (z domova, …),
- dostupné pouze přes doménové jméno a https, tj. při testování z bis.vse.cz následující příkazy nevrátí aplikaci, ale buď odmítnou spojení (kód 4xx či 5xx), nebo přesměrují na
https://bisxxx.vse.cz/adminer/
(příkazy jsou pro adminer, pro LAM obdobně)curl http://bisxxx.vse.cz/adminer/
např.curl http://bis049.vse.cz/adminer/
curl http://146.102.54.xxx/adminer/
např.curl http://146.102.54.49/adminer/
curl --insecure https://146.102.54.xxx/adminer/
např.curl --insecure https://146.102.54.49/adminer/
- úvodní stránka a lam (https://bisxxx.vse.cz/lam/) - na https://securityheaders.com/ hodnocení B a lepší
- úvodní stránka a lam (https://bisxxx.vse.cz/lam/) - na https://observatory.mozilla.org/ hodnocení B a lepší
- budete doplňovat bezpečnostní hlavičky - zjistěte si, proti jakým útokům chrání,
Admin aplikace přes adm-bisxxx.vse.cz
Doporučený postup:
- vytvořte samostatný DocumentRoot pro adm-bisxxx.vse.cz, např.
mkdir /var/www/adm-bis081
- do tohoto adresáře umístěte ukázkový
index.html
(např. informací, že se jedná o adm-bis081.vse.cz) - do tohoto adresáře přesuňte adresář s aplikací adminer (
mv /var/www/html/adminer /var/www/adm-bis081
) - požádejte o certifikát pro doménové jméno adm-bisxxx.vse.cz, tj. příkaz
certbot --domains adm-bis081.vse.cz
, neupravujte konfigurační soubory, - v
/etc/apache2/sites-available
zkopírujte000-default-le-ssl.conf
do adm-bisxxx.conf (cp 000-default-le-ssl.conf adm-bis081.conf
), - v tomto novém konfiguračním souboru je potřeba změnit ServerName a cesty k certifikátům a i další (např. adresář pro adminer),
- v původním
000-default-le-ssl.conf
je potřeba zrušit adminer a LAM (a případně i sks) - v
000-default.conf
je potřeba nastavit přesměrování na HTTPS pro adm-bisxxx.vse.cz; buď použijete regulární výraz nebo dvakrát RewriteCond s operátorem OR; popis viz https://www.jakpsatweb.cz/server/mod-rewrite.html; na bis.vse.cz je obecnější zápis, kdy nemusím při doplnění jména upravovat000-default.conf
- nastavit použití nové site -
a2ensite adm-bis081.conf
- a nyní již zkontrolovat úpravy (
apachectl configtest
), restartovat apache (systemctl restart apache2
) a otestovat
Content-Security-Policy
Doporučuji následující postup pro vytváření hlavičky Content-Security-Policy:
- nejdříve potřebujete mít nainstalovaný LDAP server a dokonfigurovat aplikaci,
- přečtěte si základní informace o hlavičce Content-Security-Policy, např. Content Security Policy (CSP) od Mozilla či článek Bezpečnější web s hlavičkou Content-Security-Policy
- CSP definuje mnoho pravidel, některé jsou bezpečné (např. upgrade-insecure-requests), některé nahrazují starší direktivy (frame-ancestors),
- hlavním cílem je ochrana proti Cross-Site Scripting (XSS) - tato pravidla je potřeba odladit. Nejvhodnější je nastavit doporučený bezpečný standard a poté zkoušet, zda něco nepřestalo fungovat. Doporučuji v prohlížeči spustit Nástroje pro vývojáře v nich si zobrazit konzoli (console).
- některé aplikace generují CSP hlavičku sami, není vhodné je přepisovat (apache, u Header se podívejte na parametr setifempty). Nepřepisujte CSP pravidla pro aplikace jako adminer či LAM,
Nadstandardní úkoly pro semestrální práci
Zde jsou návrhy rozšiřujících úloh k semestrální práci. Některé návrhy se mohou vzájemně vylučovat, některé návrhy lze realizovat pouze u některých aplikací.
popis rozšíření | počet bodů |
---|---|
ModSecurity - web application firewall. Nainstalovat a nakonfigurovat (návod pro Debian, návod v češtině). Ukázat v logách nějaké zachycené útoky (SQL Injection, XSS, …) | 3 |
Fail2ban - aplikace v logách hledá útočníky a poté je může blokovat (návod). 1 bod při instalaci a upozorňování na e-mail, 3 body při blokování přes nftables. Poznámky k instalaci. | 1-3 |
SSH server bude používat dvoufaktorovou autentizaci - použít Time-based One-time Password Algorithm (TOTP), též se používá označní Google Authenticator. Tj. uživatel se přihlásí klíčem a jednorázovým kódem. Pokud dodatečné údaje pro TOTP nemá nastaveny, tak se nepřihlásí. Ze serveru bis.vse.cz (popř. z celé školní sítě) by mělo být možné se přihlásit bez dvoufaktorové autentizace, tj. pouze klíčem. | 2 |
SSH přihlášení uživatele pomocí OpenSSH certifikátu - viz https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Certificate-based_Authentication. Nelze současně s předchozím úkolem (SSH a 2FA). V PuTTY podpora od verze 0.78. | 2 |
SSH přihlášení pomocí privátního klíče umístěného na FIDO2 či čipové kartě/tokenu. Potřebujete HW úložiště privátního klíče. V případě PuTTY se podívejte na https://github.com/NoMoreFood/putty-cac. Pravděpodobně nejde rozumně kombinovat s předchozími úkoly (SSH a 2FA, SSH a certifikáty). Ze tří zadání na SSH si vyberte jen jedno. | 2 |
Přihlášení do aplikace pomocí dvoufaktorové autentizace (TOTP). Část aplikací dvoufaktorovou autentizaci nepodporuje. V případě WordPressu je to součást zadání. | 1-3 |
—
Různé služby pro testování webů/serverů/domén:
https://webbkoll.dataskydd.net/en/
https://observatory.mozilla.org/
AbuseIPDB is an IP address blacklist for webmasters and sysadmins to report IP addresses engaging in abusive behavior on their networks: