Terapi Parah: Cure for MacOS

Anda akan mengatakan bahwa semuanya di sini dan di luar kotak adalah baik-baik saja dan semuanya tampaknya cerdik, hingga generasi otomatis dari kata sandi seperti itu untuk situs web yang bahkan tidak dirasakan secara visual dari upaya kelima, bagaimanapun, bayangkan bahwa penting bagi kita untuk melindungi diri kita tidak hanya dari peretas sehari-hari, tetapi juga dari pengembang sistem itu sendiri.

Penelitian saya tentang masalah ini dimulai sejak OS X Lion 10.7 dirilis dan saya awalnya menggunakan perangkat lunak pihak ketiga yang dibayar dan sangat efektif untuk perlindungan, sampai saya mengetahui apa yang terjadi dan mengapa perangkat lunak ini mencakup hasil seperti itu.

Sebenarnya, berikut ini adalah skrip sederhana yang menekan kontrol firewall melalui layanan internal sistem MacOS berdasarkan jangkar dan memberikan kontrol langsung ke filter paket, yang memblokir semua koneksi yang masuk secara umum:

# # Ninja PF configuration file( original located on /etc/pf.conf.backup ). # # This file contains the main ruleset, which gets automatically loaded # at startup. PF will not be automatically enabled, however. Instead, # each component which utilizes PF is responsible for enabling and disabling # PF via -E and -X as documented in pfctl(8). That will ensure that PF # is disabled only when the last enable reference is released. # # Care must be taken to ensure that the main ruleset does not get flushed, # as the nested anchors rely on the anchor point defined here. In addition, # to the anchors loaded by this file, some system services would dynamically # insert anchors into the main ruleset. These anchors will be added only when # the system service is used and would removed on termination of the service. # # See pf.conf(5) for syntax. # # ICMP configure icmp_types = "{echoreq, echorep, unreach}" icmp6_types = "{echoreq, unreach, echorep, 133, 134, 135, 136, 137}" netbios_types = "{137,138,139}" interfaces = "{en0, en1, en2, en3, en4}" # Base policy set fingerprints "/etc/pf.os" set block-policy drop set state-policy if-bound set require-order yes set optimization aggressive set ruleset-optimization none set skip on lo0 scrub in all fragment reassemble no-df min-ttl 64 max-mss 1440 scrub out all random-id block in log all pass out quick flags S/SA modulate state # Antispoofing antispoof quick for $interfaces inet antispoof quick for $interfaces inet6 # More secure settings block in from urpf-failed to any block in quick on $interfaces from any to 255.255.255.255 block in quick on $interfaces from any to 255.255.255.0 # ICMP policy block in inet proto icmp all icmp-type $icmp_types keep state block in inet6 proto icmp6 all icmp6-type $icmp6_types keep state block in on $interfaces proto {tcp,udp} from any to any port $netbios_types 

Jangan lupa centang kotak untuk mengaktifkan firewall dalam preferensi. Untuk memverifikasi bahwa PF sedang berjalan, jalankan di terminal

 sudo pfctl -sa 

Berikut adalah pola aturan yang dikumpulkan secara singkat untuk mengelola koneksi dan antarmuka, dan pengaturan itu sendiri memblokir lalu lintas masuk sebanyak mungkin. Jika Anda benar-benar paranoid, cukup beri komentar pada baris set skip on lo0 dan Anda akan menyelamatkan sistem dari server web yang berfungsi dan memblokir sebagian besar aplikasi dari mengakses antarmuka loop kembali (terminal loop).

Lo0 biasanya berguna untuk memblokir jika Anda suka bermain game bajakan dari torrents, yang sering ditambal oleh eksploit atau sampah lainnya.

Hal kedua yang dilakukan skrip adalah, dengan persetujuan pengguna, mengatur pengaturan keamanan kernel tingkat lanjut.

Berikut adalah daftar singkatnya:

 # 10.13.4 system ctl configuration # Kernel IPC overrides kern.ipc.somaxconn=100 # kernel security level(0, 1 - soft security level or 2 - can't install any software) kern.securelevel=1 # Speed up TM backups debug.lowpri_throttle_enabled=0 kern.coredump=0 # Networking settings net.link.ether.inet.max_age=600 net.inet.ip.redirect=0 net.inet6.ip6.redirect=0 net.inet.ip.sourceroute=0 net.inet.ip.accept_sourceroute=0 net.inet.ip.linklocal.in.allowbadttl=0 net.inet.icmp.bmcastecho=0 net.inet.icmp.icmplim=50 net.inet.icmp.maskrepl=0 net.inet.udp.blackhole=1 net.inet.tcp.blackhole=2 net.inet.tcp.delayed_ack=2 net.inet.tcp.always_keepalive=0 net.inet.tcp.rfc3390=1 net.inet.tcp.rfc1644=1 net.inet.tcp.tso=0 # Incoming and outgoing port ranges net.inet.tcp.sack_globalmaxholes=2000 net.inet.ip.portrange.first=1024 net.inet.ip.portrange.last=65535 net.inet.ip.portrange.hifirst=1024 net.inet.ip.portrange.hilast=2500 net.inet.ip.check_interface=1 net.inet.tcp.keepidle=50000 net.inet.ip.rtmaxcache=1024 net.inet.tcp.path_mtu_discovery=0 net.inet6.icmp6.rediraccept=0 net.inet.tcp.msl=4500 net.inet6.icmp6.nodeinfo=0 net.inet6.ip6.accept_rtadv=0 net.inet6.ip6.auto_linklocal=1 net.inet6.ip6.only_allow_rfc4193_prefixes=1 net.inet6.icmp6.nd6_onlink_ns_rfc4861=1 

Parameter kernel ini memperketat kebijakan koneksi jaringan termasuk semua RFC yang mungkin dan memblokir semua kemungkinan noise (gema, arahan ulang, dll.), Dan parameter kern.securelevel = 1, yang dapat sangat berguna untuk tester pena, patut mendapat perhatian khusus.

kern.securelevel = 2 akan sepenuhnya memblokir kemampuan untuk menginstal paket apa pun pada sistem. Umumnya ketat. Tetapi sistem tidak akan kehilangan kinerja.

Saya juga membalik port aplikasi yang membutuhkan nilai tinggi dan menurunkannya sehingga lalu lintas tidak nyaman untuk "mendengarkan".

Selanjutnya, skrip menambahkan opsi penyesuaian untuk beberapa opsi tampilan Finder dan pengaturan kecil untuk Safari. Misalnya, ada baiknya menonaktifkan AV Foundation dan fungsi media lainnya, karena sistem dapat diretas melalui stream audio dan video dengan satu gambar splitter dari situs web.

Secara umum, ini aneh, tetapi bahkan iTunes di MacOS mengikuti, jadi saya lebih suka tangki lengkap.

Patch tersedia di GitHub . Untuk mulai menggunakan

 sudo ./fix.sh 

Jika Anda memiliki saran atau amandemen, saya sarankan untuk membagikan pendapat Anda dalam komentar.

Source: https://habr.com/ru/post/id421221/


All Articles