본문 바로가기

Learning/└◆리눅스 서버 보안

08.5_Snort Architecture & Snort Rules SNORT 대표적으로 사용되는 룰 기반의 IDS http://www.snort.org snort는 내가 정한 룰대로 탐지 활동을 하는 것이다. iptables와 비슷하다고 생각해도 된다. 이 룰(Rule)은 'Rule Header' 와 'Rule Option'으로 구성되어 있다. Snort(SNiffer and mORE) 1998년 마틴 로쉬가 오픈 소스로 개발 스그니쳐 기반 네트워크 침입 탐지 시스템 작동 방식: Sniffer Mode, Packet Logging Mode, NIDS Mode, IPS Mode 스니퍼(Sniffer) : 네트워크 패킷 수집 패킷 디코더(Packet Decoder) : 전처리기와 탐지 엔진이 파싱 할 수 있도록 정규화 전처리기(Preprocessor) : 특정 행위가 발견.. 더보기
08.4_PCRE(Perl Compatible Regular Expression) PCRE(Perl Compatible Regular Expression) Snort Rules -> pcre 지시자 (Kali Linux - IDS) root@kali:/etc/snort/rules # find . -type f -name "*.rules" -exec fgrep -l pcre {} \; ./exploit.rules ./community-web-php.rules ./community-misc.rules ./oracle.rules ./community-imap.rules ./pop2.rules ./community-oracle.rules ./web-misc.rules ./community-bot.rules ./virus.rules ./web-php.rules ....(중략).... alert.. 더보기
08.3_ufsnet 사용한 DDoS Attack 시뮬레이션 [실습] ufsnet 사용한 DDoS Attack 시뮬레이션 ■ 사용 시스템 - KaliLinux ■ 사용 프로그램 - ufonet UFONET 동작원리 UFONET GUI 툴 Description UFONet is a free software tool designed to test DDoS attacks against a target using 'Open Redirect' vectors on third party web applications like botnet. See this links for more info: - CWE-601:Open Redirect: http://cwe.mitre.org/data/definitions/601.html - OWASP:URL Redirector Abuse: ht.. 더보기
08.2_LOIC(Low Orbit lon Cannon) 툴을 사용한 DoS Attack(2017.03.15수정) [실습] LOIC(Low Orbit Ion Cannon) 툴을 사용한 DoS Attack 실습 저궤도 이온포(Low Orbit Ion Cannon) 네트워크 스트레스 테스트 툴이다. 이 소프트웨어는 많은 공공기관을 포함한 여러 웹사이트에 분산 서비스 공격을 편하게 사용할 수 있게 도와주며, anonymous에 의해 사용되면서 유명하게 되었다. 이전 다운로드 사이트에는 /bin/파일이 사이트자체에서 누락되었던 것 같다. 아래 사이트에서 설치한다. # apt-get update # apt-get -y install git git-core # apt-get -y install mono-dmcs mono-mcs monodevelop mono-runtime liblog4net-cil-dev # mkdir /loi.. 더보기
08.2_LOIC(Low Orbit lon Cannon) 툴을 사용한 DoS Attack [실습] LOIC(Low Orbit Ion Cannon) 툴을 사용한 DoS Attack 실습 저궤도 이온포(Low Orbit Ion Cannon) 네트워크 스트레스 테스트 툴이다. 이 소프트웨어는 많은 공공기관을 포함한 여러 웹사이트에 분산 서비스 공격을 편하게 사용할 수 있게 도와주며, anonymous에 의해 사용되면서 유명하게 되었다. Window 2008에서 실습했음. ( dotnetframework -> LOIC ) (KaliLinux) # apt-get update # apt-get -y install git git-core# apt-cache search mono | grep --color '^mono' mono-dmcs, mono-mcs, mono-devel, monodevelop # a.. 더보기
08.1_DoS_DDoS_SNORT DoS(Denial of Service) & DDoS(Distributed DoS) ■ 보안 이슈 관련 단어 DoS/DDoS, DB Attack, APT Attack, SPAM MAIL, WEB Hacking, Wireless Hacking + Big Data Security + IoT Security ■ 실습 환경 DoS/DDoS ---> Firewall ---> IPS/IDS ---> WAF ---> WEB Server(SELinux) ■ KaliLinux Tools(Attacker) IDS : snort (# apt-get install snort) IPS : suricata (# apt-get install suricata) 1. DoS & DDoS 개요 DoS(Denial of Service) .. 더보기
02_로그파일의 내용 중 자신의 로그인한 기록을 지우는 방법 /var/log/wtmp (data file) -> last CMD /var/run/utmp (data file) -> who CMD # cd /var/log # mv wtmp wtmp.old # last # mv wtmp.old wtmp # last (Hacker) Text Log Format # cd /var/log # ls -l secure > secure.time # vi secure .... 적당한 라인 삭제 .... # cat secure.time # touch -t secure (Hacker) Data Log Format structure # man utmp # man wtmp # vi Script.sh +++++++++++++++++++++++++++++++++++++++++++++++++.. 더보기
02_로그보안_03_URL_리눅스로그지우기 http://kopil.tistory.com/m/post/10 ================================== 공격 해서 site 권한 -> user01 -> root # who (utmp) # last (wtmp) https://w2.eff.org/Net_culture/Hackers/hacking.faq =================================================== -> 위 URL 문서 내용 중 아래 부분을 참고 ----------------------------------------------------- 11. How do I erase my presence from the system logs? Edit /etc/utmp, /usr/adm/wtmp an.. 더보기
02_로그보안 02_로그 분석 (리눅스침해사고) 로그 분석 INDEX 정보수집 1.싱글 유저모드 2./var/log/messages 3./var/log/secure 4./var/log/wtmp 5./root/.bash_history 사용자의 서버 활동 사항을 추적 보고서 -> 시간에 기반한 보고서가 만들어져야 한다. (MAC 분석 작업) 주제 (침해사고 발생) - 오늘 중요한 파일 (/etc/passwd)이 삭제 되었다. (ㄱ) 오늘 파일이 지워졌다. (ㄴ) 중요한 파일(/etc/passwd)이 지워졌다. (1) 확인작업을 위한 로그인 시도 -> 로그인이 되지 않음 (2) 싱글유저 모드로 진입 /etc/passwd 파일 직접생성 후 root 패스워드 설정 후 reboot (삭제된파일 복구) (3) root계정으로 정상 로그인 후 history 목록 확.. 더보기
02_로그보안 01_Log Server Guide Log Server Guide 목적 : 로그 기록 체계, 로그 기록 분석, 로그 서버 구축 01. 리눅스 로그 개요 로그 기록 용도 사용자 및 서버의 활동 기록 시스템 공격에 대한 흔적 기록 서버 장애에 대한 흔적 기록 로그 기록을 통한 성능 카운트 -> 옛날 로그 기록은 거의 필요가 없다 -> 따라서, 오래된 로그 기록들의 관리 정책을 잘 세워야 한다. (주의) 로그 기록을 이해하지 못하는 관리자에게는 아무런 쓸모가 없는 파일에 불과하다. 따라서 로그 기록을 분석하는 방법도 중요하다. 로그 기록이 사용되는 실무적인 예 사용자 활동량이 많은 서버(접속해서 사용하는 사용자들) 서버 관리자가 자신이 맡고 잇는 서버에 접속하고 난후 작업 순서 1. 서버 관리자 접속 2. 서버 점검 포인트 첫번째, 현재 사용량.. 더보기
01_리눅스 보안 점검_ 자동_스크립트 #!/bin/bash . /root/bin/print.sh echo "######################################################################" echo " 리눅스 패스워드 정책 점검 - 사용규칙 분석결과 " ### 항목명 ### echo " 1. 패스워드 사용규칙 적용" ### 위험도 ### echo " 위험도 : 상" ### 기준설명 ### echo " [진단결과]" echo "######################################################################" cat /dev/null 2>&1 if [ $? -eq 0 ] ; then print_good "적합한 패스워드 정책을 사용 중입니다. [GOOD.. 더보기
01_사용자/그룹이 없는 파일에 대해서 사용자/그룹이 없는 파일에 대해서 ■ 사용시스템 - linux200 [실습] 사용자/그룹이 없는 파일 생성 ① 실습용 사용자(nouser) 생성 및 확인 # useradd nouser # echo nouser | passwd --stdin nouser Changing password for user nouser. passwd: all authentication tokens updated successfully. ■ useradd 명령어 수행 (ㄱ) /etc/passwd 파일 내용 추가(# grep nouser /etc/passwd) (ㄴ) /etc/shadow 파일 내용 추가(# grep nouser /etc/shadow) (ㄷ) /home/nouser 디렉토리 생성(# ls -l /etc/skel/*).. 더보기
01_관리자의 잘못된 PATH 변수 설정 관리자의 잘못된 PATH 변수 설정 (주의) 관리자(EX:root)의 PATH 변수 설정은 현재 디렉토리가 포함되어 있으면 안된다. ■ 관리자의 잘못된 PATH 변수 설정 예 PATH=.:/bin:/usr/bin:/usr/sbin PATH=/bin:/usr/bin:/usr/sbin:. PATH=:/bin:/usr/bin:/usr/sbin PATH=/bin:/usr/bin:/usr/sbin: PATH=/bin::/usr/bin:/usr/sbin 변수설정의 순서도 중요하다 순서대로 검색하고 대상을 찾으면 멈춘다. PATH 변수에 대해서 - 명령어가 있는 디렉토리를 선언할 때 사용하는 변수 # ls (절대경로) # /bin/ls (상대경로) # cd /bin # ./ls cd /test export PATH=.. 더보기
01_HISTTIMEFORMAT 변수(관리자 정책_사용자 환경파일 관리) HISTTIMEFORMAT 변수 (linux200) ■ HISTTIMEFORMAT 변수 명령어 히스토리(Command history) 기능에 시간을 설정할 수 있는 기능이다. 사용자가 수행한 명령어를 추적할 때 사용할 수 있으므로 사용을 권장한다. # export LANG=C # man bash /HISTTIMEFORMAT HISTTIMEFORMAT If this variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each history entry displayed by the history builtin. If this variable .. 더보기
01_TMOUT 변수 설정 TMOUT 변수 설정 ■ 사용시스템 - KaliLinux - linux200 (linux200) # man bash /TMOUT TMOUT If set to a value greater than zero, TMOUT is treated as the default timeout for the read builtin. The select command terminates if input does not arrive after TMOUT seconds when input is coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing t.. 더보기
01_불 필요한 계정 삭제 불 필요한 계정 삭제 [실습] lastlog 명령어에 대해서 # cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x.. 더보기
01_/etc/pam.d/system-auth 보안설정 [pam.d 이해] pam의 기본 개념 pam 옵션 경로 # cd /usr/share/doc/pam-(버전)/txts CentOS를 기준 버전별로 옵션이 다르다 /usr/share/doc/pam-(버전)/txts 확인 /etc/pam.d/ 밑의 파일을 수정하면, 수정한 이후 로그인 하는 계정부터 바로 적(갱신 필요없음) 잘못 수정시 로그인 못하게 되는사태 발생 -> 싱글모드로 부팅 모듈이 제대로 된 경로에 있는지 확인 /lib/security/ : 32bit 운영체제 모듈이 있고, 64bit 버전도 /lib/security/ 에서 /lib64/security 로 심볼릭 링크를 거는 경우가 있지만(CentOS5) CentOS6 64bit는 /lib/security에 심볼릭 링크가 없다 /lib64/security/ : 64b.. 더보기
01_패스워드 최소 길이 설정_Password Aging 암호의 복잡성 사용자의 암호 정책(Password Aging)를 설정하는 방법 전역) /etc/login.defs 로컬) chage CMD, /etc/shadow Password Aging 관리 시스템 보안을 위해 사용자 패스워드 만기일을 설정 및 변경하는 명령어 password age (1) chage CMD # chage [Options] user (명령어 사용 예) * # chage --help # chage -M 30 -W 7 user01 -M : Max chage, -W : Warn date # chage -E 2010-03-30 user01 -E : Expire date # chage -l user01 -l : list (/etc/shadow) user01:$1$eG0hsAqw$Cfawvh5O.. 더보기
리눅스 서버 보안 04_주요정보통신기반시설_패스워드 1.2 패스워드 복잡성 설정 ■ 점검 분류 항목: 계정 관리■ 세부 점검 항목: 패스워드 복잡성 설정■ 대상: 리눅스■ 위험도: 상■ 관련 코드: U-02 (1) 취약점 개요● 사용자 계정 및 일반 계정 모두 해당 암호를 유추하기 쉽게 설정할 경우 비인가자의 시스템 접근을 허용하게 하는 위험이 존재함 여러 문자를 혼합한 8자리 이상의 암호를 사용하게 하여 패스워드 복잡성을 높이면 비인가자에 의해 발생하는 침입 공격 발생률을 낮출 수 있음. (2) 판단기준● 양호: 영문 숫자 특수문자가 혼합된 자리 이상의 패스워드가 설정된 경우● 취약: 영문 숫자 특수문자 혼합되지 않은 자 미만의 패스워드가 설정된 경우 (3) 조치방법● 계정과 유사하지 않은 자 이상의 영문 숫자 특수문자의 조합으로 암호 설정 (4) 보안.. 더보기
리눅스 서버 보안 03_주요정보통신기반시설_계정관리 (고객에게 설명) root 사용자의 이름은 정해져 있으며, 암호만 맞추면 되기 때문에 원격에서 무작위 대입을통해 root 사용자의 암호가 크랙당하는 위험성이 존재한다. 따라서 일반 사용자로 로그인하여 root 사용자로 전환하여 사용하도록 권장하여야 한다.=> Brute Force Attack, Dictionary Attack (실무 환경에 대한 예)중소기업 규모 - 단독서버(일반사용자로 로그인 해서 root 사용자로 switching 해서 사용)대기업 규모 - Gateway 서버를 통해 서버에 접속※ IDC(Intergration Data Center) : 통합 전산 센터(Network + Server(Application) + Storage) [실습] /etc/securetty 파일에 대한 실습/etc.. 더보기