Gotortzea
Gotortzea buildaren overlay-ko testu-fitxategietan aplikatzen da. Hura ikuskatzeko, nahikoa da
fitxategiak irakurtzea edo diff batekin alderatzea. Orri honek bakoitza laburbiltzen du.
Kernelaren abio-lerroa
GRUBeko sarrera guztiek parametro hauek dituzte (build.sh-k gehitzen ditu config/grub.cfg
fitxategian):
| Parametroa | Eragina |
|---|---|
lockdown=confidentiality | Root-ek ere ezin du kernelaren memoria irakurri, ezta sinatu gabeko koderik kargatu ere. |
init_on_alloc=1 | Memoria zerora jartzen da erreserbatzean. |
init_on_free=1 | Memoria zerora jartzen da askatzean: datu gutxiago berreskuratzeko cold boot eraso batean. |
slab_nomerge | Ez ditu kernelaren esleitzailearen cacheak nahasten; horrek gainezkatzeak ustiatzea zailtzen du. |
page_alloc.shuffle=1 | Orri libreak ausaz banatzen ditu. |
randomize_kstack_offset=on | Kernelaren pilaren ausazko desplazamendua sistema-dei bakoitzean. |
pti=on | Kernelaren orri-taulen isolamendua (Meltdown). |
mitigations=auto,nosmt | CPUaren arintzeak aktibo, eta SMT (hyper-threading) desaktibatuta beharrezkoa bada. |
vsyscall=none | Helbide finkoko vsyscall orri zaharra kentzen du. |
debugfs=off | debugfs gabe. |
apparmor=1 security=apparmor | AppArmor aktibatzen du segurtasun-modulu gisa. |
ipv6.disable=1 | IPv6 erabat desaktibatuta. |
sysctl
Fitxategia: /etc/sysctl.d/99-redderos-hardening.conf.
Kernela
| Gakoa | Balioa | Eragina |
|---|---|---|
kernel.kptr_restrict | 2 | Kernelaren helbideak ezkutatzen ditu, baita root-i ere. |
kernel.dmesg_restrict | 1 | Root-ek bakarrik irakurtzen du kernelaren erregistroa. |
kernel.printk | 3 3 3 3 | Errore larriak bakarrik kontsolan. |
kernel.unprivileged_bpf_disabled | 1 | BPF root-entzat bakarrik. |
net.core.bpf_jit_harden | 2 | BPFren JIT konpilatzailea gotortzen du. |
kernel.kexec_load_disabled | 1 | Ezin da beste kernel bat kargatu martxan dagoela. |
kernel.yama.ptrace_scope | 2 | Root-ek bakarrik araz ditzake beste prozesu batzuk. |
kernel.perf_event_paranoid | 3 | perf gabe erabiltzaile arruntentzat. |
kernel.sysrq | 0 | SysRq tekla magikoak desaktibatuta. |
kernel.core_pattern | |/bin/false | Memoria-iraulketa bat ere ez da idazten. |
kernel.unprivileged_userns_clone | 0 | Erabiltzaile-izen-esparrurik ez erabiltzaile arruntentzat. |
dev.tty.ldisc_autoload | 0 | Ez ditu lerro-diziplinak eskaeraren arabera kargatzen. |
vm.unprivileged_userfaultfd | 0 | userfaultfd root-entzat bakarrik. |
vm.swappiness | 0 | Ez erabili swap-ik (gainera, ez dago bat ere). |
Fitxategi-sistema
| Gakoa | Balioa | Eragina |
|---|---|---|
fs.protected_symlinks | 1 | /tmp-ko esteka sinbolikoen bidezko tranpen aurka babesten du. |
fs.protected_hardlinks | 1 | Berdin esteka gogorrekin. |
fs.protected_fifos | 2 | Berdin FIFOekin. |
fs.protected_regular | 2 | Berdin fitxategi arruntekin. |
fs.suid_dumpable | 0 | setuid programek ez dute iraulketarik sortzen. |
Sarea
| Gakoa | Balioa | Eragina |
|---|---|---|
net.ipv4.tcp_syncookies | 1 | SYN uholdeei eusten die. |
net.ipv4.tcp_rfc1337 | 1 | TIME-WAIT babesa (RFC 1337). |
net.ipv4.tcp_timestamps | 0 | TCP denbora-markarik gabe, erlojua salatzen baitute. |
net.ipv4.conf.*.rp_filter | 1 | Jatorri faltsuko paketeak baztertzen ditu. |
net.ipv4.conf.*.accept_redirects | 0 | ICMP birbideratzeei ez die jaramonik egiten. |
net.ipv4.conf.all.secure_redirects | 0 | Berdin, baita «seguruei» ere. |
net.ipv4.conf.all.send_redirects | 0 | Ez du birbideratzerik bidaltzen. |
net.ipv4.conf.all.accept_source_route | 0 | Jatorriko bideratzeari ez dio jaramonik egiten. |
net.ipv4.icmp_echo_ignore_all | 1 | Ez dio ping-i erantzuten. |
net.ipv4.ip_forward | 0 | Ez du trafikorik birbidaltzen. |
Autotestak egiaztatzen du gako bakoitzak espero den balioa duela (erabiltzen ari den kernelean ez daudenak saltatu egiten dira, eta hala adierazten da).
Blokeatutako moduluak
Fitxategia: /etc/modprobe.d/redderos-blacklist.conf. Modulu bakoitza /bin/false-rekin ordezten
da; beraz, ezin da kargatu, ezta eskuz ere.
| Taldea | Moduluak |
|---|---|
| Gutxi erabiltzen diren sare-protokoloak | dccp, sctp, rds, tipc, n-hdlc, ax25, netrom, x25, rose, decnet, econet, af_802154, ipx, appletalk, psnap, p8022 |
| Gutxi erabiltzen diren fitxategi-sistemak | cramfs, freevxfs, jffs2, hfs, hfsplus, udf |
| Kanpoko DMA eta haririk gabeko periferikoak | firewire-core, thunderbolt, bluetooth, btusb |
Kamerak (uvcvideo) lerro bat prest du, baina iruzkindua: kendu iruzkina buildean erabat
desaktibatzeko.
AppArmor
Debianek eta Ubuntuk ez dituzte AppArmor profilak kargatzen live sistemetan. RedderOSek baldintza
hori baliogabetzen du (/etc/systemd/system/apparmor.service.d/redderos-live.conf) eta
apparmor-profiles paketeko profilak kargatzen ditu.
Amnesia: systemd eta mugak
| Fitxategia | Eragina |
|---|---|
systemd/journald.conf.d/redderos.conf | Erregistroak RAMean bakarrik (gehienez 32 MB), syslog-era birbidali gabe. |
systemd/coredump.conf.d/redderos.conf | Memoria-iraulketarik gabe. |
systemd/system.conf.d/redderos.conf | DefaultLimitCORE=0 systemd-k abiarazten duen guztiarentzat. |
security/limits.d/redderos.conf | Iraulketen muga 0 erabiltzaile guztientzat. |
systemd/logind.conf.d/redderos.conf | Saioa amaitzean, erabiltzailearen prozesu bat ere ez da bizirik geratzen. |
Gainera, buildak apt, motd-news, e2scrub eta fstrim tenporizadoreak maskaratzen ditu, eta
desaktibatu egiten ditu ordenagailuaren diskoko swap-a aktibatzen duten live sistemaren scriptak,
akats-txostenak (apport) eta pollinate.
Erabiltzaileak eta pribilegioak
rootblokeatuta dago: ezin da harekin saioa hasi.anonerabiltzaileak, saio amnesikoarenak, ez du pasahitzik eztasudoere. Administrador temporal sarrerak bakarrik ematen diosudo, eta saio horretan bakarrik.- Salbuespen bakarra
redder-wipeda: edozein erabiltzailek exekuta dezake root gisa, pasahitzik gabe eta argumenturik gabe (/etc/sudoers.d/redderos-wipe). RAMa ezabatu eta itzali besterik ez du egiten. - Profilen erabiltzaileak RAMean sortzen dira profila irekitzean, eta ezabatu egiten dira ixtean.
umask 077: fitxategi berriak haien jabeak bakarrik irakur ditzake.
Administratzailerik gabe, anon gisa exekutatzen den programa arriskatu batek ezin du root izatera
iritsi, ezta suhesia aldatu ere.
ISOaren osotasuna
Buildak md5sum.txt eta sha256sum.txt sortzen ditu irudiko fitxategi bakoitzaren baturarekin, eta
ISO osoaren .sha256 bat. ISOaren GPG sinadura egiteke dago.