외로운 Nova의 작업실
정보보안기사 실기 - 암기 내용 정리 본문
시스템 보안
- 이벤트 뷰어
이벤트 뷰어 : 윈도우에서 로그를 조회하고 관리하는 도구
애플리케이션 로그(application.evtx) : 응용 프로그램이 남기는 다양한 이벤트
시스템로그(system.evtx) : 시스템 시작 및 RDP 연결 등의 로그
보안 로그(security.evtx) : 로그인 성공 및 네트워크 로그인 로그
- 감사 정책
개체 액세스 : 파일 디렉터리등에대한 객체 기록
계정 액세스 : 계정 관리 이벤트 감사
계정 로그온 이벤트 : 도메인 계정에 대한 로그온 성공
권한 사용 : 권한 사용의 성공 및 실패 감사
디렉토리 서비스 액세스 : AD 개체의 사용자가 액세스 감사
로그온 이벤트 : 로컬 계정에 대한 로그온/오프 감사
시스템 이벤트 : 시스템 시작 또는 종료 감사
정책 변경 : 감사 정책 변경 감사
프로세스 추적 : 실행되는 포르세스에대한 감사
- 유닉스 시스템의 3가지 컴포넌트
커널, 쉘, 파일시스템
- 프로세스 상태
준비, 실행, 대기, 교착상태등이 있고 프로세스를 관리하기위해 PCB를 만듦
- 페이지 교체 알고리즘
LRU : least recently used로 최근에 가장 사용하지않은 페이지 - 2 1 3에서 3 교체, 르루
LFU : least frequently used 최근에 가장 적게 사용한 페이지 - 2 1 3에서 1교체. 르푸
NUR : not used recently 최근에 사용하지 않은 페이지 - 2 1 3 0에서 0교체, 룰
- 유닉스 파일시스템 구성
부트 블록 : 운영체제 부팅시 부트 코드를 담은 블록
슈퍼 블록 : 파일시스템을 관리하기 위한 블록
아이노드 불록 : 파일시스템의 파일들에대한 속성 정보를 담고있는 아이노드
데이터 블록 : 실제 파일의 내용이 저장
- 안전한 함수
strcat_s(), strcpy_s(), gets_s(), fgets(), scanf_s()
- shadowv 파일 암호 필드
$알고리즘 식별 ID $Salt $암호화된 비번
- umask
파일 : 666 - 022 = 644
디렉토리 : 777 - 022 = 755
- 권한 명령어
chmod u+r test
chown root test
- PAM
PAM이란 사용자를 인증하고 그 사용자의 서비스에대한 액세스를 제어하는 모듈화된 방법
- TCP wrapper
호스트 방화벽으로 hosts.deny와 hosts.allow 파일로 설정, 아래는 hosts.allow 예제
in.ftpd : 192.168.1 #ftp서비스를 192.168.1로 시작하는 IP주소는 허용
in.telnetd : .com EXCEPT www.abc.com #telnet을 .com 도메인의 호스트 허용, ww.abc.com 제외하고
ALL : ALL #모든서비스에대해 모든 호스트 허용
- 리눅스 로그(/var/log/)
utmp : who 명령, w명령으로 볼 수 있고 현재 로그인한 사용자들 상태 기록
wtmp : last 명령으로 볼 수 있고 로그인했던 것들을 모두 기록
acct/pacct : lastcomm명령으로 볼 수 있고 실행된 모든 명령 기록
btmp : 실패한 로그인 시도에대한 기록을 담고 있는 로그파일로 lastb 명령으로 불 수 있다.
syslogd 데몬이 로그를 저장하며, 설정파일은 syslog.conf파일이다.
*.notice /var/log/messages #모든 서비스에대해 notice 수준 상황이면 messages에 기록
*.alert @192.11.11.11 #모든 서비스에대해 alert 수준 상황이면 192.11.11.11로 보냄
로그 수준 : debug/information/notice/warring/error/critical/alert/emergency - din we ca e 딘위카이
notice : normal, but signification, 의미있는 이벤트
alert : 즉각 조치 필요
emergency : 시스템 전면 중단
- 로그 프로토콜
syslog 프로토콜 : UDP, 암호화안함
BEEP 프로토콜 : TCP, 암호화함
- 유닉스로그(/var/adm/) 라수로
lastlog : 가장 최근에 로그인 성공한 정보를 바이너리 형태로 저장한 로그파일로 lastlog 명령으로 볼 수 있다.
sulog : su명령을 사용한 결과를 저장한 파일
loginlog : 5번이상 실패한 로그인 시도에대한 기록, lastb명령으로 확인 가능
- logrotate
logrotate는 로그파일을 관리하기 위한 도구로 순환 압축등의 기능 제공 설정파일은 logrotate.conf 파일이며 프로세스 개별 설정 파일의 위치는 /etc/logroate.d 디렉터리이다. 아래는 logrotate 파일 내용임
/var/log/httpd/*log{
weekly #매주
rotate 4 #4개 로그 순환 파일 사용
compress #압축
size 1M #사이즈가 1M이면 순환
create #오래된 로그부터 순환후 새롭게 로그파일 생성
missingok #로그파일이 없어도 오류 발생 안함
notifemtpty #로그파일이 비어있으면 순환안함
sharedscript #스크립트 한번 실행
postrotate #순환후 스크립트 파일 실행
endscript
}
- 리눅스 telnet 루트 원격 접속 제한
1. /etc/securetty 파일에서 pts/0, pts/1, pts/2등을 모두 제거 및 주석처림
2. /etc/pam.d/login 파일을 수정함 -> auth required /lib/securtiy/pam_security.so
- 리눅스 ssh 루트 원격 접속 제한
sshd_config 파일의 PermitRootLogin 옵션을 no로 설정
- MAC time 정보
mtime : 파일의 내용이 마지막으로 수정된 시간(find / -mtime -10 : 10일이내에 수정된 파일 찾기)
atime : 파일에 마지막으로 접근한 시간
ctime : 파일의 속성 정보가 마지막으로 변경된 시간
- 패스워드 저장 정책 변경 명령어
pwconv : shadow 파일 사용
pwunconv : shadow 파일 미사용
- crontab 명령어
파일 출력 : crontab -u 계정명 -l
파일 편집 : crontab -u 계정명 -e
파일 삭제 : crontab -u 계정명 -r
- inetd
inetd는 리눅스의 서비스 서버로 설정 파일은 inetd.conf 파일이다.
inetd.conf파일에는 실행되는 서비스 데몬들이 정의되어있고 주석처리하면 중지시킨다.
inetd를 통해 TCP wrapper을 사용하려면 inetd.conf 파일에서 실행경로를 /usr/sbin.in.telenet에서 /usr/sbin/tcpd로 변경한다.
- 명령어
lastlog -u nova
lastlog -t 5
last reboot
find / -mtime -3
lastcomm --command useradd
-xferlog
전송방향 :i(incoming), o(outcoming)
성공 여부 : c(complete), i(incomplete)
전송파일 유형 : b(바이너리)ㅇ
- 윈도우 공유디렉토리 삭제 명령어
net share c$ /delete
네트워크 보안
- 데이터 링크 계층 기능
회선제어 : 단방향 이중방향 정함
흐름제어 : 데이터가 흘러 넘치지 않기위해 제어
오류제어 : 오류를 제어
- 흐름제어 방법
정지-대기 방법 : 조금 보내고 정지 조금보내고 정지 대기 반복
슬라이딩 윈도우 : 수신측이 최대 버퍼 크기를 알려주고 계속 전송
- 접근제어 기술 프로토콜
CSMA/CD : 이더넷 기술
CSMA/CA : 무선랜 기술
- 스위치 장비의 전송 방식
store-and-forward : 전체 프레임 검사 후 저송
fragement-free : 첫 64바이트만 검사후 전송
cut-through : 첫 6바이트만 검사후 전송
- 각 계층별 PDU
1 - bit
2 - frame
3 - packet
4 - 세그먼트
5,6,7 - 데이터
- VLAN 방법
port 기반
MAC기반
네트워크 주소 기반
프로토콜 기반
- 스위치 재밍
스위치의 MAC 주소 테이블을 가득 차게하는 방법
- IPv4와 IPv6 변환 방법
듀얼스택 : 통신상대에 따라 선택적 사용
터널링 : IPv4 네트워크 경유하여 IPv6 네트워크간 통신을 위한방식
주소/헤더 변환 : IPv4 주소를 IPv6로 변환
- 네트워크 포트
netbios : 135 ~ 139
SMB : 445
- netstat 명령어 옵션 : antp
- 라우터 명령어
리눅스 : tracerouter, 33434 포트 이상 사용
윈도우 : tracert, ICMP Echo Request 사용
- DDOS 공격 도구
trinoo, TFN, Stacheldracht, shaft, trinity
- 봇넷의 종류
중앙 집중형 명령 제어 방식 : IRC 봇넷, HTTP 봇넷
분산형 명령 제어방식 봇넷 : P2P 봇넷
- DDOS 공격 기술
Fast Flux : IP 빠르게 바꿈
DGA : 도메인을 빠르게 빠굼
Domain Shadwing : 정상적인 도메인 뒤에 숨음
- 무선랜 암호방식
WEP : RC4
WPA : RC4-TKIP
WPA2 : AES-CCMP
- VPN 프로토콜
PPTP : 일대일 통신
L2F : 다자간 통신
L2TP : 터널링 프로토콜
- SSL/TLS 프로토콜
handshake 프로토콜 : 종단 간에 보안 파라미터를 협상하기위한 프로토콜
Change Chiper Spec : 협상한 보안 파라미터를 이후 적용함을 알리기위한 프로토콜
Alert : 오류 통보
Application : 응용계층의 데이터를 전달
Record : 보안 파라미터를 이용하여 SSL/TLS 검증, MAC 생성, 암호화, 무결성 체크
- SSL/TLS 취약점
BEAST : https 쿠키를 훔쳐서 세션을 가로챌 수 있는 공격
CRIME : HTTPS 압축에따른 취약점을 이용하여 HTTPS 쿠키를 훔쳐서 HTTPS 세션을 가로챌 수 있는 공격
HEIST : 사이드채널 공격으로 암호문의 크기를 알아
DROWN : SSL2.0의 취약점을 이용하여 TLS 해독 가능
FREAK : 수출 RSA 사용 유도 후 부루트포싱으로 암호문 해독
POODLE : TLS를 SSL 3.0으로 낮춘후 공격
- slow 공격
RUDY : slow post 공격으로 cntents-length의 길이를 크게 해놓고 post data를 조금씩 보낸다
slowlolis : http 더의 끝은 0a0d인데 0a만 보내고 계속 헤더를 끊지않고 보내는 기법
- arp 명령어
arp -a : arp 테이블 보여줌
arp -s 1.1.1.1 22-22-22-22 정적라우팅 실행
- 스니핑 탐지 방법
ping 방법 : 존재하지않은 ip로 ping
ARP : 존재하지 않은 MAC으로 ARP
애플리케이션 보안
- dns 변환 파일
hosts - dns서버에 질의하기전 보는 파일
resolve.conf - dns 주소 파일
- dns 질의 순선
dns cache -> hosts.ics -> hosts파일 -> dns서버 질의
- dns 위변조 방지 기술
DNSSEC
- dns 보안
dns의 존 파일은 중요한 파일이므로 전송을 금지해야함 아래는 named.conf 파일
zone "nova.com" IN {
type master;
file "nova.com.zone"
allow-transfer {192.115.223.13}
}
zone ""nova.com" IN{
type slave;
master {192.14.123.32;};
allow-transfer {none;};
}
- 응답 메시지 코드
200 - ok
201 - create
202 - accepted
301 - moved permanently
302 - found
400 - bad request
401 - unathorized
403 - fobidden
404 - not found
500 - internal server error
- ftp
능동 : ftp가 능동적으로 나에게 데이터를 보내줌 -> 방화벽 막힘 -> 1024 tcp 이상 포트 허용해야함
수동 : ftp가 안해줘서 수동으로 데이터를 받음 -> 방화벽 통과
21 - 제어, 20 - 데이터
- snmp
응용계층 프로토콜, UDP 사용, 161번 162번 포트 사용
community string 으로 패스워드 값임, 보통 public 또는 private가 초기값임
snmp는 에이전트와 메니저가 있고 에이전트가 전송하면 이벤트 리포팅 방식, 매니저가 요청하면 폴링 방식이라고 한다. 에이전트는 161번, 매니저는 162번을 사용
- pop3와 imap
pop3 : 110번/tcp 포트사용, 이메일 가져온 후 삭제
imap : 143번/tcp 포트사용, 이메일 가져온후 미삭제
- sendmail 설정파일 access
localhost REALAY
127.0.0.1 REALAY
spam.com REJECT
access 파일을 만든 후에는 makemap으로 db정보로 변경해줘야 적용됩니다.
- PGP
PGP는 이메일 보안 프로토콜로 기밀성을 제공
- apache 서버 보안
httpd.conf 파일에서 디렉터리 리스팅을 없애려면 OPTIONS 지시자에서 indexes를 없애야합니다.
httpd.conf 파일에서 심볼릭 링크를 방지하려면 OPTIONS 지시자에서 FollowSymLinks를 없애야합니다.
- 검색 로봇 파일
robots.txt
- 데이터 베이스 보안 위협
집성 : 낮은 보안등급 정보를모아서 높은 등급의 정보를 알아내는것
추론 : 접근할 수 있는 정보로 유추해서 높은 보안 등급의 정보를 알아내는 것
데이터 디들링 : 원본 정보 자체를 위 변조해 끼워넣어 바꿔치기 하는 수법
- 데이터 베이스 권한 부여
GRANT 권한 ON 객체 TO 사용자 : 권한 부여
REVOKE 권한 ON 객체 FROM 사용자 : 권한 해제
DENY 권한 ON 객체 TO 사용자 : 권한 삭제
- 이메일 보안 기술
SPF : 발신자 IP 주소가 발신자 메일 주소 도메인의 실제 IP 주소가 일치하는지 검사
DKIM : 메시지 헤더와 바디에대한 디지털 서명을 메일 헤더에 삽입하여 위변조가 되지않았는지 수신자가 검증
DMARCD : SPF+DKIM
- ftp 접근제한 방법
anonymous : vsftpd.conf 파리에서 anonymous_enable=NO 로 설정
root : ftpusers 파일에 root 계정을 주석처리하지 않는다.(주석 처리되면 접근 허용)
침해사고 분석 및 대응
- IDS
오용 탐지 : 해커 패턴 기반 탐지, 미탐률이 높음(해커 패턴만 찾으니까 다른건 못찾음)
이상 탐지 : 정상사용자 행동 기반 탐지, 오탐률이 높음(정상 사용자에서 조금만 벗어나도 해커라고함)
false positive : 해커가 아닌데 해커라고 하는것
false negative : 해커인데 정상사용자라고 하는 것
- snort 룰
alert tcpy aby any -> 192.168.1.1 80 (content:"/administrator"; msg:"Web Scan Detected;)
drop tcp any any -> any 80 (msg:"HTTP Get Flooding Detect"; content:"GET /HTTP/1."; depth:13; nocase;
threshold:type threshold, track by_src, count 10, seconds 1; sid:1000999)
<threshold 기능>
limit : count 까지
threshold : count 마다
both : count 시 딱 한번만
<거리>
offset : 검사할 위치
depth : 검사 깊이(바이트)
distance : 검사한 위치로부터 다음 검사할 위치까지 거리
within : distance 다음에 나오는 검사 깊이
<룰 헤더>
alert : alert 발생후 패킷 기록
log : 로그를 남김
pass: 패킷 무시
active : alert 발생후 대응하는 dynamic 시그니처 유효
dynamic : active 에의 활성화되면 log와 동일한 액션
drop : 패킷 차단 후 로그 저장
reject : 로그 저장후 TCP reset 또는 ICMP Port Unreachable 전송
sdrop : 패킷 차단후 로그 안남김
- 방화벽 기능
상태검사기능 : 일정시간동ㅇ안 프로토콜의 상태정보를 유지함으로써 빠르고 높은 보안성 제공
- apache 웹 방화벽
ModSecurity
- UTM
다양한 보안기능을 하나로 제공하는 장비
- ESM
기업의 보안관리를 위한 장비들의 보안 정보를 통합적으로 수집하고 관리하는 시스템, 에이전트, 매니저, 콘솔로 구성
에이전트 : 보안장비에 설치되어 보안정보를 수집하여 매니저로 전달
매니저 : 에이전트가 준 정보를 분석하여 ESM 콘솔에게 전달
콘솔 : 분석결과를 시각화 조회 리포팅함
- 국가사이버안전센터 위기 경보 (정관주경심)
정상 단계
관심 단계 : 나라 외부에서 해킹
주의 단계 : 나라 내부에서 조금 해킹
경계 단계 : 내부에서 다수 해킹
심각 단계 : 내부에서 크게 해킹
- PE 구조
.text : 실행코드
.data : 읽기 쓰기
.rdata : 읽기
.bss : 초기화되지않은 전역변수
.idata : import할 DLL,
.edata : export할 DLL
.rsrc : 이미지 리소스
- 악성코드
멀버타이징 : 악성코드와 공고의 합성어로 온라인 광고를 이용하여 악성코드를 전파하는 기법
조크 : 악성코드의 일종으로 사용자들을 놀라게하는 프로그램
다운로더 : 악성코드를 지정한 주소에서 추가로 다운로드하는 프로그램
드롭퍼 : 자신 내부에 포함된 데이터를 이용하여 악성코드를 생성하는 프로그램
인젝터 : 자신의 데이터를 이용해 바로 세로운 프로세스를 생성해서 메모리에 상주시키는 프로그램
- 야라
바이러스 토탈에서 제작한 악성코드 식별 분류 도구
- 슬랙 공간
저장 매체의 물리적인 구조와 논리적인 구조의 차이로 낭비되는 공간으로 데이터를 은닉하거나 악성코드를 기록해두는 악의적인 목적으로 활용될 수 있음, 램슬랙 드라이브 슬랙 파일시스템 슬랙 볼륨슬랙등이 있다.
- DDE
마이크로소프트 오피스 응용 프로그램가 데이터를 전닮하기 위한 프로토콜로 2017년부터 DDE 기능을 악용한 파일들이 많다.
- 스피어피싱
APT 공격의 일종으로 특정인에게 피싱 메일을 지속적으로 보내 악성코드에 감염시키는 공격
- 크립토재킹
암호화폐와 납치의 합성어로 해커들이 일반 PC에 악성코드를 설치한후 암호화폐를 채굴하게 만드는 공격
- 사이버 전략 프레임워크
사이버 킬체인 : 미국 록히드 마틴사의 프레임워크
MITRE ATT&CK : 사이버 킬체인을 확장한 공격 모델
- NTP 분산 서비스 거부 취약점
ntpdc -n -c monlist 192.168.1.2명령어로 사용하며 NTP 서비스를 악용한 DDOS 공격, UDP 123번 포트 사용
NTP는 시스템들의 시간을 동기화 하는 프로토콜로 보통 ntpdate라는 명령어로 동기화한다.
- IDS 모드
인라인 모드 : 탐지뿐만아니라 차단까지 가능하지만 장비 장애시 전체 네트워크 장애 유발가능성이 있음
미러링모드 : 물리적인 네트워크 경로밖에 위치하여 패킷을 받아서 처리, 실시가 차단이 어려움
- DBD 공격 특징
다수의 경유지를 거처 최종 악성코드 유포지로 유도되어 유포지에대한 추적이 어렵고 난독화된 악성스크립트를 이용하여 보안장비를 통한 분석과 탐지를 어렵게 만드는 특징이 있다.
- 악성코드 기법
다형성 : 악성코드 자체의 기능은 변하지않지만 실행 시마다 코드의 내용이 변경되도록하여 시그니처기반 탐지를 어렵게하는기법
패킹 : 실행파일 크기를 줄이고 내부 코드와 리소스를 감추기위해 암호화 및 압축 하는 기법
AVT(지능형 휘발성 위협) : 디스크 상에 악성코드를 남기지않고 메모리상에서만 실행하는 파일리스 혀앹의 공격을 말하며 AV솔루션을 통한 파일 스캔이 불가능하여 탐지가 어렵다.
- iptable 명령어
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#변경된 정책 저장 및 종료 명령어
iptables-restore < ipt_20190201.rules
iptables -A : 마지막에 해당 규칙 추가
iptables -D : 해당 규칙 삭제(행 번호 지정)
iptables -I : 첫 행에 규칙 삽입
iptables -N : 규칙의 주소정보를 숫자 형식으로 출력
정보보안 일반
- diff-helman
1. 앨리스는 임의의 x를 선택하여 R1 = g^x mod p 를 계산하여 밥에게 R1을 보냅니다..(이때 g와 p는 공개되며 p는 소수입니다.)
2. 밥은 임의의 y를 선택하여 R2 = g^y mod p 를 계산하여, R2를 앨리스에게 보냅니다.
3. 앨리스는 K = (R2)^x mod p를 계산하여 K(대칭키)를 구합니다.
4. 밥은 K = (R1)^y mod p를 계산하여 K(대칭키)를 구합니다.
(R2)^y mod p = (R1)^x mod p = g^xy mod p
- RSA
RSA는 공개키 암호 알고리즘 중의 하나이며 세계적으로 표준 알고리즘입니다. RSA의 키 생성 알고리즘은 간단하게 아래와 같습니다.
1. p, q라고하는 두개의 서로다른 소수를 고릅니다.
2. 두수를 곱하여 N = pq를 찾습니다.
3. O(N) = (p-1)(q-1)을 구합니다.
4. O(N) 보다 작고, O(N)과 서로소인 정수 e를 찾습니다.
5. de mod O(N) = 1인 d를 구합니다
<RSA를 이용한 암,복호화 과정>
1. 수신자 밥은 송신자 앨리스에게 공개키(e, n)을 알려줍니다.
2. 앨리스는 P(평문)^e mod n의 값인 C(암호문)을 수신자인 밥에게 보냅니다.
3. 밥은 자신의 개인키인 (d, n)을 이용해 C^d mod n 값인 P를 얻어냅니다.
- 쇼단
인터넷에 연결된 디바이스의 다양한 정보를 제공하는 검색엔진
- 스마트OTP
IC카드를 스마트폰에 접촉하면 숫자가 생성되어 입력된다. 전용 앱이 있고 NFC가 지원되어야함
- PKI
CA : 인증기관
RA : 등록기관
CRL : 인증서 폐지 목록
'Certification > 정보보안기사' 카테고리의 다른 글
서버 보안 실무 - 서버 보안 체계 구축 (0) | 2023.09.29 |
---|---|
정보보안기사 실기 - 정보보안 법규 (0) | 2023.05.28 |
정보보안기사 실기 - 4(침해사고 분석 및 대응) (0) | 2023.05.08 |
정보보안기사 실기 - 3(어플리케이션) (0) | 2023.04.20 |
정보보안기사 실기 - 2(네트워크) (0) | 2023.04.01 |