[시스템보안]
서버 사이드 언어
- PHP, ASP, JSP
- HTML, Javascript, CSS 제외
멜트다운
- CPU 취약점으로 -> 유저영역이 운영체제 권한 영역 프로그램 훔쳐보기 가능
- 메모리상 모든 정보 유출 가능성 ↑
리눅스 기본 디렉터리
- /bin : (binary) 실행 파일. 일반적으로 사용하는 mv, cat등 명령어 프로그램
- /boot : 부팅
- /dev : (device) 물리적인 장치 파일화
- /etc : 환경 설정
- /home : 개인사용자
- /lib : 라이브러리 저장
- /mnt : CD-ROM, 네트워크 파일 시스템 등을 마운트 할때 사용되는 디렉토리
- /proc : 현재 실행되고 있는 프로세스 파일화
- /root : root계정의 홈 디렉토리
- /sbin : (System-binary) 시스템 관리자가 쓰는 시스템 관련 명령어 프로그램
- /tmp : 임시 저장 디렉토리. 일반적으로 모든 사용자들에게 열려 있음
- /usr : 주로 새로 설치되는 프로그램. 윈도우의 Program Files같은 폴더
- /var : 시스템 로그, 스풀링 파일. 메일 서버로 운영될 경우 메일이 여기 저장된다.
윈도우 사용자 그룹
1. 사용자
Administrator | 관리자 권한. 가장 강력 |
Local System | 로컬 관리자. 원격 접속 불가능 |
Guest | 기본 설정으로는 사용 불가능 |
2. 그룹
Administrator | 도메인 자원, 로컬 컴퓨터에 대한 모든 권한 존재 |
Account Operators | 사용자나 그룹 계정 관리 |
Backup Operators | 시스템 백업을 위해서 모든 시스템의 파일, 디렉터리에 접근가능 |
Guests |
도메인 사용 권한 제한 시스템 설정 변경권한 없음 |
Print Operators | 도메인 프린터 접근 |
Power Users |
디렉터리나 네트워크 공유, 공용 프로그램 그룹 생성 가능 컴퓨터의 표준 시간 조정 |
Replicator |
도메인에 파일 복제 권한, 디렉터리 복사 서비스 |
Server Operators |
도메인의 서버 관리 로컬 로그인과 시스템 재시작, 시스템 종료 권한 |
Users |
도메인과 로컬 컴퓨터의 일반적인 그룹 개개인 사용자 환경 생성 가능 but 항목 한계 시스템 서비스 시작 및 종료 불가, 디렉터리 공유 불가 |
윈도우 루트 키
: 윈도우 최상위 레지스트리 키
- Master Key : Hive 파일에 저장된 키
- HKEY_LOCAL_MACHINE(HKLM) 하드웨어 구동 정보
- HKEY_USERS(HKU) 유저정보, HKCU가 우선순위가 더 높음
- Derived Key : Master Key를 토대로 재구성 되는 키. 메모리에만 존재
- HKEY_CLASSES_ROOT(HKCR) 파일의 각 확장자, 프로그램간 연결 정보
- HKEY_CURRENT_USER(HKCU) 로그인한 사용자와 관련된 시스템 정보, 업데이트된 내용 HKU로 동기화
- HKEY_CURRENT_CONFIG(HKCC) 시스템 시작시 사용하는 H/W 프로파일, 디스플레이 및 프린트 설정 정보
EXT
: 1st 파일 시스템. MFS 한계 극복. 2GB - 256Bytes
리눅스 특수권한
Set-UID | 해당 파일의 소유자 | 4 |
Set-GID | 해당 파일의 소유자 그룹 | 2 |
Sticky-Bit | 디렉토리 적용 | 1 |
net share
- ADMIN$, C$, D$, IPC$ 공유
- Null Session Share 취약점
- IPC$ 원격 접속시 패스워드 Null로 접속. 시스템의 유저, 공유정보 + 레지스트리 접근 가능 -> DoS공격
- Null Session Share 취약점
좀비 프로세스
[root@bb ~]# top -b -n 1 | grep zombie
Tasks: 139 total, 1 running, 136 sleeping, 0 stopped, 2 zombie
[root@bb ~]# ps -ef | grep defunct | grep -v grep root 17107 21899 0 Feb25 ? 00:00:00 [myagent] <defunct> testuser 21207 21205 0 Feb26 ? 00:00:00 [check_service.sh] <defunct>
iptables
# iptables -A INPUT 192.168.10.22 -j DROP
룰추가 들어오는 버리기
-> 192.168.10.22로 부터 들어오는 패킷들은 차단하는 정책을 추가
- 정책열람
- iptables -L
- cat /etc/sysconfig/iptables
- 저장
- service iptables save
- iptables-save > firewall.sh
- 불러오기
- iptables-store < firewall.sh
휘발성 저장장치
: 레지스터, 캐시가 가장 휘발성이 높음
랜섬웨어
- 암호화 (PC) : 파일 암호화하고 복호화에 대가로 금전 요구
- 잠금 (모바일) : 기기 패턴, PIN 잠금 기능 활성화하고 잠금 해제 대가 금전 요구
- IoT : 호텔, 병원 등 문 잠금 후 대가로 금전 요구
- 예방 : 업데이트, 정품, 백신 구동
- 종류
- WannaCry, CryptoLocker, Reveton, TorrentLocker, Cryptowall
- ex) CryptoLocker : 파일암호화 후 돈 요구, Browlock : 경찰로 위장하여 불법사이트 접속 유도 후 돈 요구
FIDO
1. 종류
- UAF : 패스워드 대체
- U2F : MFA
2. 절차
- 등록 : 공개키 쌍 생성 - 서버에 등록(사용자 계정과 연결)
- 인증 : 단말의 개인키----서버 메시지 서명 - 서버의 공개키로 검증
3. 구성
- 생체인식 : FIDO 클라이언트(인증자 필터링)- ASM (양쪽의 요청 및 응답 전달) - 인증자(사용자 인증 및 공개키생성하여 전자서명)
- 온라인인증 : FIDO 서버(인증장치 정책 설정 및 사용자 공개키 등록.관리.검증)
Spectre 스펙터
분기예측 및 추측실행을 유도하여 다른 유저 프로그램 메모리 볼 수 있는 취약점
-> 추측실행 옵션 끄기 하드웨어 기반 보안
트로이목마
- 컴퓨터에 숨어있다 사용자 정보 유출하는 악성코드 -> 전파X
- 정상적인 파일에 함께 설치
- 시스템 제어에 목적이 있고 키로거 내장 가능성이 있다
리눅스 패스워드 복잡도
- CentOS 7 : /etc/security/pwquality.conf
- CentOS 6 : /etc/pam.d/system-auth
- 설정옵션
- retry=5 : 패스워드 입력 실패 시 재시도 가능 횟수
- difok=10 : 기존 패스워드와 비교하는 정도. 기본값10 (50%) different
- minlen=5 : 패스워드의 최소 길이
- dcredit=-1 : 숫자를 최소 1자 이상 사용 digits
- ucredit=-1 : 영어 대문자를 최소 1자 이상 사용 Upper class
- lcredit=-1 : 영어 소문자를 최소 1자 이상 사용 lower class
- ocredit=-1 : 숫자, 영어대/소문자를 제외한 기타문자(특수문자)를 1자 이상 사용
윈도우 인증
- LSA(Local Security Authority)
- 모든 계정 로그인 검증 + 시스템 자원(파일) 접근 권한 검사
- 계정명과 SID(Security ID) 매칭하여 SRM이 생성한 감사 로그 기록
- NT 보안의 중심 서비스, 보안 서브시스템
- SAM(Security Account Manager)
- 사용자/그룹 계정 정보에 대한 데이터베이스 관리
- 사용자 로그인 정보와 SAM 파일에 저장된 사용자 패스워드 비교해 인증 여부 결정
- SAM 파일 : 사용자, 그룹계정 및 암호화 패스워드 정보 저장된 데이터베이스 / 윈도우 설치 디렉터리에 위치
- SRM(Security Reference Monitor)
- 인증된 사용자에게 SID 부여
- SID 기반 파일, 디렉터리 접근 허용 여부 결정 후 감사 메시지 설정
xferlog
FTP 등을 이용해 파일이 전송된 기록이 저장된 로그 파일
[네트워크보안]
워터링 홀
방문할 가능성이 있는 웹사이트를 미리 감염시킨 뒤 잠복하였다가 공격대상이 접속하면 감염시키는 공격
-> 한 직원을 매개체로 이용하여 점차 강한 대상에게 다가가는 순차적 공격기법
rlogin (remote login)
호스트 원격 로그인 명령어
: .rhosts 또는 /etc/hosts.equiv
TTL
IP 등 여러 네트워크 프로토콜에서 패킷의 무한 루프 및 미아현상 방지 (라우팅이 순환구조일 경우)
ex) TTL = 128 정수로 설정
-> 라우팅이 될 때마다 TTL 1씩 감소, TTL 0이 되면 라우팅하지 않고 패킷 소멸
VLAN
데이터링크 계층에서 브로드캐스트 도메인을 나누는 기술
Smurf
ICMP 프로토콜 취약점 이용한 DoS
- 여러 호스트가 특정 대상에게 다량의 ICMP Request
- 소스 주소를 공격대상 호스트로 위조해 패킷 브로드캐스트시 근처의 호스트가 다량의 Reply
- hping q.frank.kr -a 10.10.10.5 --icmp --flood
가상 사설망 VPN
- L2TP : 2계층, 암호화 제공 X -> IPsec과 같이 쓰임
- PPTP : 2계층, 1:1 통신만 지원, 현재는 보안 취약
- IPSec : 3계층, HW와 클라이언트SW 요구, SSL에 비해 속도 빠름, 기밀성 보장
- SSL : 4계층, 별도의 장비 필요 없음, SSL에 비해 느림
- SSTP : MS로 윈도우에서만 사용 가능, SSL 사용
- MPLS : ISP로 별도의 장비 X
OCSP (Online Ceritificate Status Protocol)
: 인증서가 실제 유효한 인증서인지 인증기관에 직접 접속하여 확인하는 프로토콜, 유료, CA에 실시간으로 조회 가능
CRL (Certificate Revocation List)
: 인증서 폐기 목록, 직접 다운받고 찾아야함, LDAP 요청을 통해 CA가 제공됨
TCP Wrapper (서비스별 중앙통제 ACL 시스템)
- 네트워크 접근 필터링
- hosts.allow + hosts.deny 통해 서비스별 필터링
- 로그 linux: /var/log/messages, /var/log/secure
ex) # vi /etc/hosts.deny
ALL : ALL
in.telnetd : 192.168.10.
L2 전송방식
Cut-Through | Store-And-Forward | Fragment Free |
목적지 주소 확인 후 바로 forwarding | 전체 frame을 체크 후 forwarding | 앞 64byte 에러 처리 후 forwarding |
- 처리 속도 빠름
- 에러 감지 어려움 |
- 처리 속도 느림
- 에러 감지 용이 |
- 적당한 처리 속도
- 적당한 에러 감지 |
리눅스 유저 로그
wtmp | utmp | btmp | pacct | lastlog |
사용자 로그인, 로그아웃 정보 |
현재 로그인한 사용자 | 5번 이상 로그인 실패시 | 사용자 로그인부터 로그아웃까지 입력한 명령어, 시간 | 사용자별 마지막 로그인 시간, IP |
last | who | lastb | lastcomm | |
/var/log/wtmp | binary 파일 |
TCP/IP 4계층
[애플리케이션 보안]
댓글