연습문제 정리
해킹
: 남의 컴퓨터 시스템에 허락 없이 침입하여 데이터를 빼내거나 파괴하는 일보안의 3대요소
:기밀성
: 인가된 사용자만 정보자산의 접근무결성
: 적절한 권한을 가진 사용자가 인가된 방법으로만 정보 변경가용성
: 필요한 시점에 정보 자산에 접근 가능하도록
세션
: 사용자와 시스템 사이 또는 두 시스템 사이의 활성화된 접속최초 이메일
: 1970snmp
: IP 기반 네트워크상의 각 호스트로부터 정기적으로 여러 관리 정보SFP
: 함수 호출시 스택 프레임 구조를 유지하기 위해 저장되는 이전 함수 프레임 포인터MAC 주소
: 12개 16진
DB 권한 관리
- 뷰를 사용하지 않는경우 접근제한, 모든 권한은 뷰를 생성해서 하도록
- 네트워크 트래픽을 탐지 할 수 있는
태핑
장비를 DB 서버 중간에 설치
즉 일종의 하드웨어 방화벽을 설치하는 것- 네트워크 패킷 중 SQL 질의문을 탐지하여 수상한 접근 케치
AAA 요소
시스템 사용자가 로그인한 후 명령을 내리는 과정에 대한 시스템 동작
Authentication (인증)
:- 아이디, 비번 입력하는 과정
Authorization (인가)
:- 로그인을 허락된 사용자로 판명하여 로그인 하는 과정 즉, 신원 확인 과정
Accounting
:- 로그인 했을 때 시스템에 로그를 남기는 과정
리눅스 시스템 로그
/usr/adm
: 초기 유닉스/var/adm
: 최근 유닉스/var/log
: 리눅스
로그 관리
- 시스템 내부나 네트워크를 통해 외부에서 시스템에 어떤 영향을 미칠 경우 그 내용 을 기록하여 관리하는 것
로그 종류
history
: 명령창 로그syslog
: 시스템 운영체제 전반의 로그utmp
: 유저 로그인 기록
블루투스 취약점
블루프린팅
블루투스 공격장치의 검색 활동을 의미
- 블루투스는 장치의 종류 식별을 위해 SDP 를 보내고 받음
- 공격자는 이 SDP 패킷을 활용하여 공격 가능 장치를 식별
블루스나프
블루투스의 OPP 기능을 이용한 파일 접근 공격
- 장치인증 없이 간편 정보 교환 프로토콜 OPP 기능을 이용해 주소록이나 달력등 민감한 정보를 탈취
블루버그
블루투스 장비 간의 취약한 연결을 이용
- 공격장치와 대상장치를 연결하여 임의의 조작
- 블루투스는 한 번 페어링 하면 그 다음부터는 자동으로 다시 연결되는데 이 점을 이용
IP 계산
- 네트워크 IP, 브로드캐스트 IP를 구하시오 (IP: 192.168.25.10, 서브넷 마스크: 255.255.252.0)
- 192.168.25.10 와 255.255.252.0 를 AND 연산
네트워크 IP=192.168.24.0 - 구한 네트워크 IP 에 네트워크주소로 쓰인 22비트 제와하고 남은 10비트를 모 1로
브로드캐스트IP=192.168.27.255
- 192.168.25.10 와 255.255.252.0 를 AND 연산
네트워크 보안
DoS (서비스 거부 공격) & DDoS (분산 서비스 거부 공격)
- DoS는 그냥 혼자하는거고
- DDoS는 여러 사람이 하는 것
공격 유형
취약점 공격형
: 오류가 있는 네트워크 패킷을 보낼경우 서비스에 오작동이 발생할 경우 그걸 이용해서 공격하는자원 고갈형 공격
:네트워크 대역폭이나 시스템 자원을 소모시키는
DoS 공격 방법
보잉크/봉크/티어드롭 공격
:- 프로토콜의 오류 제어 로직을 악용하는 방식
- 반복적인 재요청과 수정을 해서 TCP 쪽에서 오류 처리를 유도하여 시스템을 느리게 만듬
랜드 공격
:- 출발지, 목적지 IP 주소를 동일하게 만들어서 패킷을 뺑뺑 돌리게 만든다
죽음의 핑 공격
:- ping 에 사용하는
ICMP
패킷을 사용하여 더럽게 많이 보내서 마비시키게 만듬 - 그래서 내부적으로 ICMP 포트를 막아주면 해결 가능
- ping 에 사용하는
SYN 플러딩 공격
:- 사용자가 많은 것처럼 가상의 사용자를 만들어서 한꺼번에 많이 접속하여
3-way
동작을 유도시켜 마비시켜 버리는
- 사용자가 많은 것처럼 가상의 사용자를 만들어서 한꺼번에 많이 접속하여
스머프 공격
:ICMP
브로드캐스트을 사용하여 네트워크에 존재하는 임의의 시스템을 통해 여러 클라이언트로 확장시켜 공격다이렉트 브로드캐스트
:- 외부 네트워크에서 특정 네트워크에 브로드캐스팅 할 수 있는 기능
192.168.0.0 네트워크라면192.168.0.255
로 브로드캐스팅 - 공격자는 시작 IP 주소를 위조하여
192.168.0.255
네트워크에ICMP
request 하여192.168.0.255
에 연결된 모든 장치들이 위조된 IP 장치에ICMP
응답을 받게 하여 마비 시킨다
- 외부 네트워크에서 특정 네트워크에 브로드캐스팅 할 수 있는 기능
DDoS 공격 방법
공격자
: 메인 두목PC마스터
: 에이전트를 관리하는- 핸들러 프로그램: 마스터 시스템에 역할
에이전트
: 직접공격을 가하는 PC- 데몬 프로그램: 실제 공격을 하는 프로그램
스니핑
네트워크 통신을 하는 시스템들의 데이터를 엿보는
- 보통 공유기나, 스위치는 모든 패킷을 브로드케스팅 한다,
다만 실제 브로드케스팅 요청이 아닌 경우 필터링 과정을 거치기 때문에
다른 클라이언트에 패킷을 받아 볼 수 없는것 - 스니핑은 필터링을 무시하고 모든 패킷을 받아보는
종류
스위치 재밍 공격
:- 랜덤으로 MAC 주소 생성해서 스위치에 존나게 보내서 MAC 테이블 저장용량을 초과 시킴
SPAN 포트 공격
:- 스위치에 송/수신 되는 데이터를 미러링 함
프러미스큐어스 모드
- 데이터 링크 계층과 네트워크 계층의 필터링을 해제하는 랜 카드의 모드
스니핑 탐지
Ping을 이용한 방법
:- 의심가는 Host에 존재하지 않는 MAC 주소로 ping을 보내서 원래는 응답을 못받아야 정상인데 받으면 해당 Host는 스니퍼임
ARP를 이용한 방법
:- ARP를 위조하여 없는 MAC 주소로 설정했는데 정상적이라면 아무런 응답이 없어야 하는데 스니퍼 Host는 응답을 보냄으로 탐지가능
DNS를 이용한 스니퍼 탐지
:- DNS 응답 과정을 이용한 탐지
ARP watch
:- ARP 모니터링 하여 탐지
스푸핑
서버와 클라이언트 통신 과정을 스푸퍼가 처리를 하게 되는
ARP 스푸핑
:- 서버와 클라이언트 통신 과정 시 공격자의 MAC 주소로 속여서 요청/응답 을 모두 공격자가 하게 되는
- 2계층 에서 일어남
IP 스푸핑
:- 다른사람의 IP 주소를 강탈하여 어떠한 권한을 획득
- 서버가 IP 주소로 권한의 대한 처리가 들어가 있다면
ICMP 리다이렉트
: 공격자를 네트워크에 속한 라우터라고 알려 패킷에 흐름을 바꿈
DNS 스푸핑
:- 실제 DNS 서버보다 빨리 대상에게 DNS Response 패킷을 보내서 공격대상이 잘못된 ip 주소로 가게 설계
세션 하이재킹
- 두 시스템간 연결이 활성화 된 상태, 즉 로그인된 상태를 가로채는것
- 누군가 네이버에 로그인 한 채로 자리를 비웠을 때 그 자리로 가서 그 사람 계정으로 뭔 짓거리를 하는거 같은것
무선 보안
SSID 브로드캐스팅 금지
- 보통 wifi 창가면 wifi 이름이 보이는데 이걸
SSID 브로드캐스팅
이라고 함 - 브로드캐스팅을 해제 하고 수동으로 SSID 를 사용자가 입력 해줘야만 접속 가능하게 설계 하는
암호화 프로토콜
WEP
:- 단순한 비밀번호로 요청하여 Wifi 를 연결하는
WPA-PSK
:WEP
의 복호화가 간단하다는 문제를 해결하기 위해 나온 프로토콜
EAP
:- 기업환경을 위한 암호화 방법
- 중앙 암호화 RADIUS DB 서버 하나 두고 둘 사이를 컨트롤
웹 보안
웹 프록시
- 프록시 서버를 하나 생성해놓고
- 프록시 서버가 패킷을 받아서 위변조
구글 고급 검색기능
- site
filetype:<확장자>
: 특정 유형 파일에 검색하는 문자가 있는지intitle:<검색어>
: 특정 사이트 제목
검색 엔진 우회
User-agent: googlebot
User-agent: *
Disallow: dbconn.ini
Disallow: /admin
주요 취약점
SQL Injection
- 웹에 URL에 SQL 구문을 넣어 DB 접근을 유도함
- 애플리케이션이 사용자로부터 입력받은 데이터를 검증 없이 SQL 쿼리에 직접 포함할 때 발생
인증 및 세션 관리 취약점
- 첫 접속시 자기의 아이디, 비번을 재대로 입력
- 인증 과정 시 나온 세션키를 사용하여 유저 아이디만 다르게 수정하여 다시 접속
- 만약
아이디 && 세션 키
조합 인증이 안된경우 아이디만 알면 해당 계정으로 접속하여 사이트를 이용할 수 있게된다는 뜻
XSS
공격자가 서버에 작성한 스크립트가 다른 사람에게 전달되는 것
- 서버에 공격 스크립트(js등) 작성하여 저장
- 이때 서버는 WAS와 같이 SSR인 경우 효과적
- 그러면 사용자는 서버에 접속하는 순간 해당 코드가 실행됨
- 해당 취약점을 방지하기 위해 일부 특수문자에 대한 예외 처리가 필요
Broken Access Control
인증 권한 Level 설정으로 인해 일반 사용자가 관리자 페이지 같은곳에 접근 할 수있는
- 예를들어 웹서버에 파일 탐색권한을 제대로 막지 않았다던가
Security Misconfiguration
디렉터리 리스팅
:- 웹 브라우저에서 웹 서버의 특정 디렉터리를 열면 그 디렉터리에 있는 파일과 목록이 모두 나열되는 것을 말함
리버스 텔넷
:- 시스템 권한 획득 후 텔넷과 같은 쉘에 명령을 입력 할 수 있는
- 예를들어 서버에 ssh 터널링을 활성화 한 경우 서버에 권한을 획득해서 명령을 수행 할 수 있게되는거
민감한 데이터 노출
- 해킹으로 인해 클라이언트 유저의 민감한 데이터 유출
공격 방어 취약점
- APT 공격이 일반화되면서 보안 솔루션으로 탐지가 어려워 웹 에플리케이션 수준에서 탐지, 로깅 을 권고
CSRF 취약점
- 구조는 XSS 와 비슷
- CSRF는 스크립트 서버에 전송하여 서버가 해당 스크립트를 실행하도록 설계
- 즉 만약 관리자(서버) 가 해당 요청을 받으면 해당 요청을 처리할때 모든 클라이언트에
CSRF
스크립트가 실행이 됨 즉, 관리자, 사용자 모두가 피해자가 된 상황
XSS, CSRF 차이점
- XSS 에 경우 사용자 클라이언트에 스크립트를 실행시켜 해당 사용자만 해킹당한다
- CSRF는 스크립트가 서버에서 실행시켜 해당 서비스를 이용하는 모든 클라이언트를 해킹시킨다.
메모리 구조
스택 영역
:- 프로그램이 동작하기 위한 인자, 프로세스 상태 저장
- 레지스터의 임시 저장공간
- 가장 윗단 이라 레지스터와 가까움
힙 영역
:- 실제 프로그램 실행 시 사용되는 메모리 공간
어셈블리 레지스터 정리
pushl %ebp
: 메모리 스택 최상단(자기 기준) 주소값을 가르킴movl %esp,%ebp
:esp(스택 최하단)
레지스터 값을ebp(스텍최상단)
으로 복사call function
:function
함수 호출subl $12,%esp
: 12 바이트의 공간을 할당하기 위해esp
값을 12로 줄임addl %eax,8(%ebp)
:eax
값에*(ebp+8)
값을 더함cx
: 반복적으로 실행되는 특정 명령에 사용
시스템 공격
SetUID
:- 유닉스 권한이
rwsr-xr-x
인 경우 누군가 해당 파일을 실행해도 파일 소유자 권한을 가짐
- 유닉스 권한이
버퍼 오버플로 공격
strcpy()
함수같이 명시한 버퍼 크기를 초과하여 값을 입력하는 경우 해당 버퍼 공간 이상으로 메모리를 침범하여 문제가됨
strcpy()
에 10바이트 공간을 할당했는데 만일 이를 무시하고 15바이트 데이터를 보낸다 하더라도 해당 넘치는 5바이트에도 문제없이 값이 대체되게 된다- 즉 일종의 메모리 변조가 가능한 셈이다
- 만일 10바이트 할당한 공간 이후에 오는 1바이트 공간이 사용자 로그인을 허용하는 값이라고 치자
- 그럼 해커 입장에서는 마지막 11바이트 공간에
1
값을 할당시켜서 손쉽게 로그인을 할 수있게 되는 거다 - 그러므로 안전하게
strcpy_s
를 쓰도록하자
포멧 스트링 공격
printf()
함수를 사용할때%d
와 같은 서식 문자를 입력할때 취약점
- 사용자가 문자열을 입력하고 그걸
printf()
로 출력하는 상황일 경우
이전입력 문자 개수를 더해 참조하는 메모리 주소에 쓰는 서식문자인%x
가 있다- 그렇다면 사용자가
aaa%x
라고 입력하면 어떤일이 발생하겠는가?
- 그렇다면 사용자가
취약한 서식 문자
:%n
: int(쓰인 바이트 수, 문자면 문자 길이)
악성코드
바이러스
숙주가 되는 파일을 감염시켜 퍼지는 악성코드
다른 파일이나 프로그램에 자신을 삽입
부팅 바이러스
: 부팅시 MBR 정보를 메모리에 저장할때 사용되는 모든 프로그램 감염- 부팅순서: POST → CMOS → MBR or 윈도우 부트매니저
파일 바이러스
1세대
: 바이러스가 프로그램 뒤에 위치함- 대표적으로 예루살렘, 선데이 등
2세대
: 암호형 바이러스- 하드에 있을때는 암호와 되어있는데 메모리에 올라오면서 암호가 풀림
- 백신은 그럼 메모리를 스캔 때려서 바이러스 분석
- 대표적으로 슬로 등
3세대
: 은폐형 바이러스- 감염된 파일이 일정기간 잠복기간 가지도록 설계
- 대표적으로 브레인, 조시 등
4세대
: 다형성 바이러스- 코드를 다양하게 조합하여 암호형 바이러스와 덧붙여 백신이 식별을 어렵게함
5세대
: 매크로 바이러스- MS 오피스 같은 사무용 프로그램에 매크로 기능으로 감염시킴
차세대
:- 네트워크와 이메일로 전파
- 파일감염을 넘어 정보탈취와 백도어 기능
웜
스스로 복제하여 네트워크를 통해 전파되는 악성코드
스스로 증식하는 것이 목적이라 파일이나 운영체제 자체에 이런 기능이 있거나 운영체제를 감염 시킴
메스 메일러
:- 자기를 포함하여 대량으로 메일 전송
- 사용자가 읽었을때 감염
시스템 공격형
:- 운영체제 취약점을 이용하여 내부정보 파괴하거나 사용할 수 없게 만듬
네트워크 공격형
:- SYN 플러딩 DOS 공격을 수행하는
트로이 목마
악성 루틴이 숨어있는 프로그램 (백도어)
- 겉으로는 멀정해 보이나 사용자가 실행하면 악성코드 실행
백도어
: 제품 출시 시 삭제해야 하지만 제품 출시 할때까지 남아있는 경우가 있음
PUP (Potentially Unwanted Program)
사용자에게 동의를 구하지만 용도를 파악하기 어려운 프로그램을 설치하는 경우
- 프로그램 설치 시 더미로 설치하려는 프로그램들을 의미함