harden your linux

31
HARDEN YOU LINUX TDOH.ONLINE 2016 TIM HSU

Upload: tim-hsu

Post on 15-Apr-2017

1.383 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Harden Your Linux

HARDEN YOU LINUXTDOH.ONLINE 2016

TIM HSU

Page 2: Harden Your Linux

徐千洋 (TIM HSU)

CHROOT 創辦人HITCON 創辦人網駭科技 創辦人曾任:台灣大哥大 資安部經理現職:VARMOUR 美商安連網路公司台灣分公司

Page 3: Harden Your Linux

如何避免被遠端命令執行

Page 4: Harden Your Linux

如何利用 DOCKER 強化網站安全https://www.youtube.com/watch?v=L5T8-ITjDn8

Page 5: Harden Your Linux

遠端命令執行 (REMOTE CODE EXECUTION)

browser httpd php login.php

/bin/sh

Page 6: Harden Your Linux

遠端命令執行 (REMOTE CODE EXECUTION)

browser httpd php upload.php

webshell.php/bin/sh

Page 7: Harden Your Linux

• 針對程序作存取控制

/usr/sbin/nginx {

#include <abstractions/apache2-common> #include <abstractions/base>

capability dac_override, capability net_bind_service, capability setgid, capability setuid,

/etc/passwd r, /etc/group r, deny /bin/sh mrwklx,}

Page 8: Harden Your Linux

如何避免系統被提權

Page 9: Harden Your Linux

LINUX KERNEL 4.4.0 'AF_PACKET' RACE CONDITION PRIVILEGE ESCALATION

Page 10: Harden Your Linux

核心再強化,避免核心提權• CONFIG_RANDOMIZE_BASE• CONFIG_RANDOMIZE_MEMORY• CONFIG_SLAB_FREELIST_RANDOM• CONFIG_DEBUG_RODATA• CONFIG_HARDENED_USERCOPY• CONFIG_VMAP_STACK• CONFIG_THREAD_INFO_IN_TASK

Page 11: Harden Your Linux

• 針對程序作存取控制

/bin/bash {

deny /tmp/** mrwklx, deny /var/tmp/** mrwklx, deny /home/** mrwklx, }

Page 12: Harden Your Linux

安全強化目的• 降低系統遭 WEB/AP 高風險漏洞攻擊時之影響• 在已知漏洞仍不及修補時給予適當保護• 減少管理者在維護時操作上之疏失

Page 13: Harden Your Linux

基本強化心法• 所有操作和服務,盡量用最小權限• 檔案若是在可寫入的目錄,則不應該可被執行• 所有帳號權限應該作執行環境的限制

Page 14: Harden Your Linux

強化方式• 權限切割及限制

• 網站 /AP 權限• 不可登入• 限制檔案及目錄寫入• 禁止執行所有系統命令

• 伺服器管理員• 正常維護

• ROOT• 緊急維護

• 系統設定強化• 啟動作業系統核心安全性參數• 增加檔案系統安全性參數

Page 15: Harden Your Linux

權限切割及限制• 網站/AP 權限

• 不可登入• 限制檔案及目錄寫入• 禁止執行所有系統命令

• 伺服器管理員• 正常維護

• ROOT• 緊急維護

Page 16: Harden Your Linux

維護分級• 正常維護

• 透過 SUDO 執行• 伺服器啟動 / 暫停 /重啟• AP 程式更新

• 緊急維護 (切換成 ROOT)• 主機 REBOOT/SHUTDOWN• 檔案系統維護• 新增移除帳號• 修改網站及系統設定

Page 17: Harden Your Linux

強化內容• 改變指令操作權限• 移除危險指令• 移除所有編譯器• 修改 KERNEL 安全參數• 檔案系統掛載參數調整

Page 18: Harden Your Linux

STEP 1

• 建立 WEB 管理者帳號 : WEBADMIN, GID 請設為 0, 加入 ROOT GROUP •       EXAMPLE:•       UID=500(WEBADMIN) GID=0(ROOT) GROUPS=0(ROOT)

Page 19: Harden Your Linux

STEP 2• 增加 SUDO 權限,使用 VISUDO ,確認讓登入的一般帳號可透過 SUDO 切換身份至 WEBADMIN •       •       ( 登入帳號 ) ALL= /BIN/SU WEBADMIN•  •       EXAMPLE: 登入帳號為 NEWBUG• 解除下列三項註解 :•       CMND_ALIAS NETWORKING•       CMND_ALIAS SERVICES•      CMND_ALIAS PROCESSES• 加入下列兩行•       TIMHSU ALL= /BIN/SU WEBADMIN•       WEBADMIN ALL=(ROOT) NETWORKING,SERVICES,PROCESSES

Page 20: Harden Your Linux

STEP 3

• 限制 WEBADMIN 遠端登入•  • 在 /ETC/SSH/SSHD_CONFIG 中加入•       DENYGROUPS ROOT

Page 21: Harden Your Linux

STEP 4

• 改變 AP HOME 目錄 OWNER ,假設 WEB AP 放在 /HOME/AP 目錄下•        CHOWN –R WEBADMIN.ROOT  /HOME/AP

Page 22: Harden Your Linux

STEP 5

• 改變指令操作權限,將系統指令全部只允許 ROOT 及 ROOT GROUP 使用• CHMOD O-X /BIN/*• CHMOD O-X /USR/BIN/*• CHMOD O-X /SBIN/*• CHMOD O-X /USR/SBIN/*• CHMOD O-X /USR/LOCAL/BIN/*• CHMOD O-X /USR/LOCAL/SBIN/*

Page 23: Harden Your Linux

STEP 6

• 確認核心安全參數值是否如下 :•  • # SYSCTL KERNEL.EXEC-SHIELD• KERNEL.EXEC-SHIELD = 1• # SYSCTL KERNEL.RANDOMIZE_VA_SPACE• KERNEL.RANDOMIZE_VA_SPACE = 2• # SYSCTL VM.MMAP_MIN_ADDR• VM.MMAP_MIN_ADDR = 4096

Page 24: Harden Your Linux

STEP 7

• 檔案系統掛載參數調整 :• 修改 /ETC/FSTAB 加載 NOSUID,NOEXEC 參數,修改完畢使用 MOUNT -A 重新掛載或 REBOOT•    /TMP•    /VAR/TMP•    /DEV/SHM• EXAMPLE: /ETC/FSTAB• TMPFS                   /TMP                TMPFS   RW,NOSUID,NOEXEC,AUTO,NOUSER,ASYNC  0 0• TMPFS                   /DEV/SHM                TMPFS   RW,NOSUID,NOEXEC,AUTO,NOUSER,ASYNC 

0 0• TMPFS                   /VAR/TMP                TMPFS   RW,NOSUID,NOEXEC,AUTO,NOUSER,ASYNC  0

0

Page 25: Harden Your Linux

常見系統維運方式伺服器及 AP 管理員root

一般帳號 系統帳號• 最高權限• 不允許遠端直接登入• 只能從伺服器管理者切換身份

• 一般權限• 可透過 su 切換成 root• 最低權限• 不可登入系統

Page 26: Harden Your Linux

強化後維運分級

伺服器及 AP 管理員root

一般帳號 系統帳號

• 最高權限• 不允許遠端直接登入• 只能從伺服器管理者切換身份• 限制使用危險指令 (Ex:dd/

fdisk)• 記錄所有操作的時間及命令

Page 27: Harden Your Linux

強化後維運分級

伺服器及 AP 管理員root

一般帳號 系統帳號

• 次高權限• 有權限對伺服器作各種維護操作 (EX:service /server

restart )• 記錄所有操作的時間及命令• 不具 AP 目錄寫入權限

Page 28: Harden Your Linux

強化後維運分級

伺服器及 AP 管理員root

一般帳號 系統帳號

• 一般權限• 可透過 sudo 切換成伺服器管理員或 AP 管理員• 限制可操作之命令• 記錄所有操作的時間及命令• 不具 AP 目錄寫入權限

Page 29: Harden Your Linux

強化後維運分級

Private &

Confidential - 29 -

伺服器及 AP 管理員root

一般帳號 系統帳號

• 最低權限• 不可登入系統• 限制可操作之命令• 限制檔案傳送目錄

Page 30: Harden Your Linux

Q&A