Da es mal wieder neue Systeme gibt stellt sich die Frage, ob und in welcher Form wir ggf. bei der Absicherung vom bisherigen Vorgehen abweichen und suche nach Anregungen.
Ein 2 stufiges Konzept mit HW-Firewall besteht hierbei.
Auch muss der jeweilige Webserver über eine Mailgateway sprechen, welches z.B. eine Kontenfilterung übernimmt.
-> Schutz vor versenden von Spam.
Datenbank liegt aus Sicherheit und Performance Gründen getrennt vom Webserver.
Die üblichen Verdächtigen kennt man ja, Apache Webserver, ftp...
Aber was gibt es z.B. mit php 5.6 oder sogar php 7.0 zu beachten?
Anregungen Sammlung Systemhärtung
Anregungen Sammlung Systemhärtung
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
Re: Anregungen Sammlung Systemhärtung
Hier eine 1. Entwurf einer php.ini zur Diskussion gestellt.
Code: Select all
[PHP]
extension=apcu.so
apc.enable_cli=1
apc.enabled=1
apc.shm_segments=1
apc.shm_size =64M
apc.optimization=1
apc.num_files_hint=1000
apc.user_entries_hint=4096
apc.ttl=3600
apc.user_ttl=0
apc.gc_ttl=3600
apc.cache_by_default=1
apc.filters=NULL
apc.mmap_file_mask=NULL
apc.slam_defense=1
apc.file_update_protection=2
apc.max_file_size=1M
apc.use_request_time=1
apc.stat=1
apc.write_lock=1
apc.report_autofilter=0
apc.include_once_override=0
apc.rfc1867=0
apc.rfc1867_prefix=upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
apc.localcache=0
apc.localcache.size=512M
apc.coredump_unmap=0
apc.stat_ctime=0
apc.preload_path=NULL
apc.file_md5=0
apc.canonicalize=1
apc.lazy_functions=0
apc.lazy_classes=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=4000
opcache.revalidate_freq=600
opcache.fast_shutdown=1
opcache.enable=1
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
;output_handler =
zlib.output_compression = Off
;zlib.output_compression_level = -1
;zlib.output_handler =
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
;open_basedir =
disable_functions = php_uname, getmyuid, getmypid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix, _getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, phpinfo
disable_classes =
;ignore_user_abort = On
realpath_cache_size = 16k
realpath_cache_ttl = 120
zend.enable_gc = On
;zend.multibyte = Off
;zend.script_encoding =
expose_php = Off
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 60
max_input_time = 120
max_input_nesting_level = 64
max_input_vars = 1000
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = On
report_memleaks = On
;report_zend_debug = 0
track_errors = Off
;xmlrpc_errors = 0
;xmlrpc_error_number = 0
html_errors = Off
;docref_root = "/phpmanual/"
;docref_ext = .html
;error_prepend_string = "<span style='color: #ff0000'>"
;error_append_string = "</span>"
error_log = php_errors.log
;error_log = syslog
;arg_separator.output = "&"
;arg_separator.input = ";&"
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
enable_post_data_reading = On
post_max_size = 1024M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
;default_charset = "UTF-8"
always_populate_raw_post_data = Off
; UNIX: "/path1:/path2"
include_path = ".:/usr/share/php5:/usr/share/php5/PEAR"
doc_root =
user_dir =
enable_dl = Off
;cgi.force_redirect = 1
;cgi.nph = 1
;cgi.redirect_status_env =
cgi.fix_pathinfo=1
;fastcgi.impersonate = 1
fastcgi.logging = 1
cgi.rfc2616_headers = 0
file_uploads = On
upload_tmp_dir = /var/tmp
upload_max_filesize = 1024M
max_file_uploads = 40
allow_url_fopen = Off
allow_url_include = Off
default_socket_timeout = 120
;auto_detect_line_endings = Off
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[CLI Server]
; Whether the CLI web server uses ANSI color coding in its terminal output.
cli_server.color = On
date.timezone = 'UTC'
;date.default_latitude = 31.7667
;date.default_longitude = 35.2333
;date.sunrise_zenith = 90.583333
;date.sunset_zenith = 90.583333
;filter.default = unsafe_raw
;filter.default_flags =
[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
[intl]
;intl.default_locale =
;intl.error_level = E_WARNING
[sqlite]
;sqlite.assoc_case = 0
[sqlite3]
;sqlite3.extension_dir =
[Pcre]
;PCRE library backtracking limit.
;pcre.backtrack_limit=100000
;pcre.recursion_limit=100000
[Pdo]
;pdo_odbc.connection_pooling=strict
;pdo_odbc.db2_instance_name
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
phar.readonly = On
phar.require_hash = On
;phar.cache_list =
[mail function]
SMTP = localhost
smtp_port = 25
;mail.force_extra_parameters =
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
;birdstep.max_links = -1
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = Off
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
;mysqli.allow_local_infile = On
mysqli.allow_persistent = Off
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
;mysqlnd.net_cmd_buffer_size = 2048
;mysqlnd.net_read_buffer_size = 32768
[OCI8]
;oci8.privileged_connect = Off
;oci8.max_persistent = -1
;oci8.persistent_timeout = -1
;oci8.ping_interval = 60
;oci8.connection_class =
;oci8.events = Off
;oci8.statement_cache_size = 20
;oci8.default_prefetch = 100
;oci8.old_oci_close_semantics = Off
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
;sybct.timeout=
;sybct.packet_size
;sybct.login_timeout=
;sybct.hostname=
;sybct.deadlock_retry_count=
[bcmath]
bcmath.scale = 0
[browscap]
;browscap = extra/browscap.ini
[Session]
session.save_handler = files
session.save_path = "/var/lib/php5"
session.use_cookies = 1
;session.cookie_secure =
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 32
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = sha512
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
;session.upload_progress.enabled = On
;session.upload_progress.cleanup = On
;session.upload_progress.prefix = "upload_progress_"
;session.upload_progress.name = "AMA_PHP_SESSION_UPLOAD_PROGRESS"
;session.upload_progress.freq = "1%"
;session.upload_progress.min_freq = "1"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
;mssql.connect_timeout = 5
;mssql.timeout = 60
;mssql.textlimit = 4096
;mssql.textsize = 4096
;mssql.batchsize = 0
;mssql.datetimeconvert = On
mssql.secure_connection = Off
;mssql.max_procs = -1
;mssql.charset = "ISO-8859-1"
[Assertion]
;assert.active = On
;assert.warning = On
;assert.bail = Off
;assert.callback = 0
;assert.quiet_eval = 0
[COM]
;com.typelib_file =
;com.allow_dcom = true
;com.autoregister_typelib = true
;com.autoregister_casesensitive = false
;com.autoregister_verbose = true
;com.code_page=
[mbstring]
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none;
mbstring.func_overload = off
;mbstring.strict_detection = Off
;mbstring.http_output_conv_mimetype=
[gd]
;gd.jpeg_ignore_warning = 0
[exif]
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
[Tidy]
;tidy.default_config = /usr/local/lib/php/default.tcfg
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
;sysvshm.init_mem = 10000
[ldap]
ldap.max_links = -1
[mcrypt]
;mcrypt.algorithms_dir=
;mcrypt.modes_dir=
[dba]
;dba.default_handler=
[curl]
;curl.cainfo =
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
Re: Anregungen Sammlung Systemhärtung
Hey, Du lebst ja noch =)
Verstehe nur die Hälfte aber vllt. kann man daraus am Ende ein kleines How-Tow für die Community erstellen, was man zum Thema der neuen PHP-Sachen beachten muss/sollte. Wäre dann was für alle und mich würde es auch interessieren.
Die ini sieht so doch schon garnicht übel aus!
MFG: Paykoman
PS: Du hattest mal Interesse gezeigt an nem Projekt (online-arbeitsplatz) mitzuwirken für das ich einen Sys-Admin suche, leider kann man dir keine Nachrichten schicken und meine Suche besteht immer noch, wäre schön wenn du vllt. noch mal ins Topic schauen würdest!
Verstehe nur die Hälfte aber vllt. kann man daraus am Ende ein kleines How-Tow für die Community erstellen, was man zum Thema der neuen PHP-Sachen beachten muss/sollte. Wäre dann was für alle und mich würde es auch interessieren.
Die ini sieht so doch schon garnicht übel aus!
MFG: Paykoman
PS: Du hattest mal Interesse gezeigt an nem Projekt (online-arbeitsplatz) mitzuwirken für das ich einen Sys-Admin suche, leider kann man dir keine Nachrichten schicken und meine Suche besteht immer noch, wäre schön wenn du vllt. noch mal ins Topic schauen würdest!
Re: Anregungen Sammlung Systemhärtung
Nachrichten kannst Du mir nun schicken.
Das war wohl deaktiviert.
Beim aktuellen Thema gut es um eine generelle Renovierung der Servierinfrastruktur.
Dabei steht natürlich auch im Raum, dass wir Erkenntnisse aus einem Honeypot aber leider auch aus einem entdeckten Einbruch, in das neue Sicherheitskonzept einarbeiten wollen.
Aktuell suche ich noch Anregungen zum Thema, Ideen einige Inspirationen una natürlich muss ich mich mal wieder um neuere Dinge kümmern.
Part 1. ist erstmal zu verstehen, was sich bei php 5.6 grundlegend geändert hat, was aus Security Sicht besonders berücksichtigt werden sollte.
Die angebrachte php.ii können wir so leider nicht wirklich nutzen. Diverse Applikationen wie roundcube, Wordpress, phpBB usw. benötigen viele der deaktivieren Funktionen, wie z.B Exec.
Da stelle ich mir nun die Frage, wie man das erlauben dieser Funktionen anderweitig bestmöglich absichern kann.
Leider haben wir auch nicht immer Einfluss darauf, ob unsere Kunden Ihre Webseiten aktuell halten.
Daher stellt sich in Part 2 die Frage, in wie weit wir das z.B. mit mod_security schützen können.
Auch das Thema Systemhärtung oder absichern von bestimmten Dateien um Beute Force Attacken zu verhindern, sollen berücksichtigt werden.
Ja, daraus kann dann gerne eine Anleitung vielleicht auch Leitfaden für die Community entstehen.
Das war wohl deaktiviert.
Beim aktuellen Thema gut es um eine generelle Renovierung der Servierinfrastruktur.
Dabei steht natürlich auch im Raum, dass wir Erkenntnisse aus einem Honeypot aber leider auch aus einem entdeckten Einbruch, in das neue Sicherheitskonzept einarbeiten wollen.
Aktuell suche ich noch Anregungen zum Thema, Ideen einige Inspirationen una natürlich muss ich mich mal wieder um neuere Dinge kümmern.
Part 1. ist erstmal zu verstehen, was sich bei php 5.6 grundlegend geändert hat, was aus Security Sicht besonders berücksichtigt werden sollte.
Die angebrachte php.ii können wir so leider nicht wirklich nutzen. Diverse Applikationen wie roundcube, Wordpress, phpBB usw. benötigen viele der deaktivieren Funktionen, wie z.B Exec.
Da stelle ich mir nun die Frage, wie man das erlauben dieser Funktionen anderweitig bestmöglich absichern kann.
Leider haben wir auch nicht immer Einfluss darauf, ob unsere Kunden Ihre Webseiten aktuell halten.
Daher stellt sich in Part 2 die Frage, in wie weit wir das z.B. mit mod_security schützen können.
Auch das Thema Systemhärtung oder absichern von bestimmten Dateien um Beute Force Attacken zu verhindern, sollen berücksichtigt werden.
Ja, daraus kann dann gerne eine Anleitung vielleicht auch Leitfaden für die Community entstehen.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
Re: Anregungen Sammlung Systemhärtung
Ich fasse hier mal die potentiellen Probleme auf, welche bestenfalls verhindert / vermieden werden sollten.
Zumindest mal eine 1. Fassung
mod_security Rules
Keine Ausführungsrechte für upload und / temp Verzeichnisse. Generell keine Ausführungsrechte für Ordner in welche die Anwendung schreiben kann.
-> Ausschluss php perl etc. handler.
FS Härtung
Erstellen eines eigenes changelogs und Prüfung dessen.
Veränderungen durch Systemhärtung verhindern aber min. rechtzeitig erkennen.
Welche Methoden wären hier zielführend?
Effektive Verhinderung zur Ausführung von Schadcode,
Schadcode rechtzeitig entdecken
Ungewollte Netzzugriffe nach extern verhindern.
... tbc
Zumindest mal eine 1. Fassung
- SQL Injections (Ja auch heute noch eine Problem)
mod_security Rules
- Remote Code Execution
Keine Ausführungsrechte für upload und / temp Verzeichnisse. Generell keine Ausführungsrechte für Ordner in welche die Anwendung schreiben kann.
-> Ausschluss php perl etc. handler.
- Ausspähen der Infrastrutkur
FS Härtung
- Kompromitierung der Zielsysteme
Erstellen eines eigenes changelogs und Prüfung dessen.
Veränderungen durch Systemhärtung verhindern aber min. rechtzeitig erkennen.
Welche Methoden wären hier zielführend?
- Verhinderung illegaler Aktionen / Anschluss an Botnetze
Effektive Verhinderung zur Ausführung von Schadcode,
Schadcode rechtzeitig entdecken
Ungewollte Netzzugriffe nach extern verhindern.
... tbc
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.