
룡빈관 깐풍기. 촉촉하고 부드럽다. 짬뽕은 나한테 매웠음

1. GNU BASH 취약점(Shellshock)
- 개요
- Bash 이해하기
- 셸 변수 선언
- 지역변수 — 선언한 셸 내에서만 사용 가능한 변수
- 선언 — 변수명=변수값
- 사용 — $변수명
- echo $$ — 현재 프로세스의 pid 확인
- bash 명령을 통해 자식 bash 프로세스 생성 후 부모 프로세스에 선언된 지역변수 참조 불가
- set — 모든 변수 및 함수 목록 반환
- unset 변수명 — 변수 제거
- env — 환경변수 및 함수 목록 반환
- 환경변수 — 선언한 셸뿐만 아니라 자식 셸에서도 사용 가능한 변수
- 선언 — export 변수명=변수값
- 지역변수 — 선언한 셸 내에서만 사용 가능한 변수
- 셸 함수 선언
- 함수 선언
- 함수의 환경변수 설정
- bash 셸의 함수 선언 기능 취약점 — 환경변수의 함수 선선언문 뒤에 임의의 명령어를 삽입할 경우, 선언의 끝을 인지하지 못하고 삽인한 명령어까지 실행하는 취약점 존재
- 셸 변수 선언
- GNU Bash 취약점
- CGI를 이용한 Bash 취약점 공격 유형
- 공격 원리
- CGI(Common Gateway Interface) — 웹 서버에 요청된 페이지를 응용 프로그램에 전달하고 처리하기 위한 인터페이스
- CGI — User-Agent와 같은 요청 헤더 정보를 셸의 환경변수에 저장하는데, 공격자가 헤더 정보에 함수와 명령어를 추가하여 전송하면 해당 명령어 실행
- 리버스 셸 연결 유형
- /dev/tcp 특수 파일을 이용한 리버스 셸 연결
- nc 프로그램을 이용한 리버스 셸 연결
- 악성코드 다운로드 유형
- 웹셸 생성 유형
- 공격 원리
- 대응 방안
- 취약한 버전의 Bash를 사용하는 경우 최신 버전으로 업데이트
- CGI 서비스 사용 유무를 확인하여 해당 서비스를 사용하지 않는 경우 서비스를 중지시키거나 CGI 삭제
- 네트워크 보안 장비 단에서 공격 시그니처를 등록하여 차단
2. SSL/TLS 관련 취약점
- HeartBleed 취약점(2014년 4월)
- 개요
- OpenSSL 라이브러리의 하트비트 확장 모듈의 버그로 인해 발생한 취약점
- 서버에 저장된 중요 메모리 데이터가 노출되는 취약점
- CVE-20144-0160 — 시스템 메모리 정보 노출 취약점
- 주요 내용
- 하트비트 확장 모듈
- SSL/TLS 프로토콜에서 매번 연결을 재협상하지 않아도 상호 간에 연결 지속 신호를 주고받으면서 통신 연결을 유지하게 해주는 기능
- 클라이언트가 하트비트를 요청하면서 페이로드와 그 길이를 보내면 서버측에서 응답에 그 내용을 길이만큼 복사하여 되돌려주며 연결 확인
- 하트비트 확장 모듈에서 클라이언트 하트비트 요청 메세지를 처리할 때 데이터 길이 검증을 수행하지 않아 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 제한 없이 탈취 가능
- 노출 가능한 정보 — SSL/TLS 서버 개인키, 세션키, 쿠키 및 개인정보 등
- 하트비트 확장 모듈
- 대응 방안
- 시스템 측면 대응 방안 — 취약점이 존재하지 않는 OpenSSL 버전으로 업데이트
- 네트워크 보안 장비 측면 대응 방안
- snort 탐지 룰 적용
- 취약점 공격 탐지 및 차단 룰/패턴 적용
- 서비스 관리 측면 대응 방안
- 서버측 SSL/TLS 개인키가 유출되었을 가능성이 있으므로 인증서 재발급 검토
- 취약점에 대한 조치가 완료된 후 사용자들의 비밀번호 재설정을 유도하여 탈취된 계정을 악용한 추가 피해 방지 방안 고려
- 개요
- FREAK 취약점(2015년 2월)
- 개요
- 프랑스 국립 연구소(INRIA) 및 MS사에서 SSL을 통해 강제로 취약한 RSA로 다운그레이드시킬 수 있는 취약점 발견
- CVE-2015-0204
- OpenSSL s3_clint.c의 ssl_3get_key_exchange 함수에서 발생하는 취약점
- MITM 공격을 통해 512비트 RSA로 다운그레이드시켜 정보를 유출시킬 수 있음
- 주요 내용
- SSL 통신 시 MITM을 통해 취약한 export-grade의 RSA를 이용하게 하여 통신 내용의 유출이 가능한 위협 발견
- 서버 및 브라우저에서 RSA_EXPORT 기능을 제공하는 경우 이에 해당함
- 취약점 확인 방법
- openssl 툴을 이용하여 EXPORT 버전의 cipher suite으로 대상 서버에 접속하여 협상에 성공할 경우 취약한 버전으로 판단
- openssl s_client -connect 대상 도메인:443 -cipher EXPORT 입력 후 alert handshake failure 확인 시 해당 취약점에 안전
- 대응 방안
- 서버 운영자 — 해당 취약점에 영향을 받는 OpenSSL 버전 사용 시 최신 버전으로 업그레이드
- 업그레이드가 어려운 경우 OpenSSL “RSA_EXPORT” cipher suite 비활성화
- 일반 사용자 — 취약점에 영향을 받는 OS 및 브라우저는 업그레이드 필요
- 서버 운영자 — 해당 취약점에 영향을 받는 OpenSSL 버전 사용 시 최신 버전으로 업그레이드
- 개요
- LogJam 취약점(2015년 09월)
- 개요
- MITM을 통해 사용자의 웹, 또는 이메일 서버 간의 TLS 통신을 다운그레이드시킴
- HTTPS 연결에서 OpenSSL을 포함하고 있는 SSL/TLS 클라이언트를 다운그레이드시킬 수 있는 공격
- 공격자가 임시 Diffie-Hellman 키 교환을 사용하여 TLS 연결을 512비트 수출 버전 암호화로 다운그레이드 가능
- 주요 내용
- 공격자는 취약한 512비트 수출 등급 암호화 연결로 다운그레이드하여 통과되는 트래픽에 대해 읽거나 수정할 수 있으며, 특히 디피-헬만 키 교환 방식이 이 공격에 영향받을 수 있음
- 다수의 서버가 디피-헬만을 사용할 때 같은 소수를 사용하는데, 이러한 점을 이용하여 공격자는 각각의 커넥션을 복호화할 수 있음
- 1024비트의 소수까지 해킹 가능
- 대응 방안
- 클라이언트 — 최신 브라우저 사용
- 서버 — 명시적으로 Export용 cipher suite를 사용하지 않음
- 2048비트의 디피-헬만 그룹을 생성하거나 타원 곡선 디피-헬만 cipher-suite 사용
- 개요
- POODLE 취약점(2014년 10월)
- 개요
- SSL/TLS 협상 시 버전 다운그레이드 공격을 통해 SSL/TLS 협상 시 버전 다운그레이드 공격을 통해 SSLv3.0을 사용하도록 강제한 후 MITM 공격을 통해 암호화되어 송수신되는 쿠키 정보나 데이터를 추출하는 공격
- SSLv3.0의 블록 암호화 기법인 CBC 모드를 사용하는 경우 발생하는 패딩된 암호 플록이 MAC에 의해 보호되지 않는 취약점 이용
- 공격 방식 — 클라이언트에서 SSLv3.0으로 서버 연결을 요청하고 공격자가 서버 연결을 허용한 후 스니핑 수행
- 대응책
- SSLv3.0을 사용하지 않도록 웹서버 SSL 설정
- OpenSSL을 최신 버전으로 업그레이드
- 개요
- DROWN 취약점(2016년 3월)
- 개요
- SSLv2.0 취약점을 악용한 교차 프로토콜 공격
- 공격자는 SSLv2.0을 사용하는 서버에 악성 패킷을 보내 인증서 키값을 알아내고 키값을 이용해 암호화된 통신 내용을 복호화해 주요 정보를 탈취할 수 있음
- 대응책
- SSLv2.0을 사용하지 않도록 웹서버 SSL 설정함
- OpenSSL을 최신 버전으로 업그레이드
- 개요
3. NTP DDoS 취약점
- 개요
- NTP — 네트워크를 통해 컴퓨터 시스템간 시간 동기화를 위해 사용하는 인터넷 프로토콜(UDP 123)
- NTP 서버 명령어(monlist)를 이용하여 대규모 증폭, 반사 형태의 디도스 공격을 유발할 수 있는 취약점
- 날짜/시간 관련 주요 유닉스/리눅스 명령어
- date
- 현재 서버의 날짜와 시간을 확인하거나 설정할 수 있는 명령어
- date — 확인
- date MMDDhhmmCCYY.ss
- rdate
- 원격지의 타임 서버를 이용하여 날짜 및 시간 정보를 확인하거나 현재 서버에 설정할 수 있는 명령어
- 타임 서버 — Time 프로토콜을 이용하여 날짜/시간 정보를 제공하는 서버
- Time 프로토콜 — TCP, UDP 37번을 이용하여 날짜/시간 정보를 제공하는 인터넷 프로토콜
- rdate -p “타임 서버” — 타임 서버의 날짜/시간 정보 확인
- rdate -s “타임 서버” — 타임 서버의 날짜/시간 정보를 현재 서버에 설정
- ntpdate
- 원격지의 NTP 서버를 이용하여 날짜 및 시간 정보를 확인하거나 현재 서버에 설정할 수 있는 명령어
- ntpdate -q “NTP 서버” — NTP 서버의 날짜/시간 정보 확인
- ntpdate “NTP 서버” NTP — NTP 서버의 날짜/시간 정보를 현재 서버에 설정
- date
- NTP 취약점을 이용한 디도스 공격 원리
- NTP monlist 명령어
- NTP 서비스 데몬(ntpd)은 질의를 통해 해당 서비스 데몬에 접속한 호스트를 모니터링할 수 있는 기능 지원
- monlist — NTP 데몬에 질의를 요청하면 최근 접속한 최대 600개의 접속 호스트 리스트를 응답받을 수 있음
- ntpdc
- NTP 서버 질의용 프로그램
- -c 옵션으로 monlist 명령을 지정한 후 대상 NTP 서버로 질의하여 NTP 서버에 최근 접속한 호스트 목록을 최대 600개까지 받을 수 있음
- 공격 절차
- 스푸핑 — 공격자는 출발지 IP 주소를 공격 대상 서버의 IP로 패킷 변조
- 전송 — 취약한 다수의 NTP 서버를 대상으로 monlist 명령의 다수 질의 전송
- 증폭 및 반사 — 질의를 수신한 NTP 서버는 다수의 접속 호스트 정보를 담은 증폭된 출발지 IP인 공격 대상 서버로 응답
- 장애 — 공격 대상 서버는 증폭된 다수의 응답 수신으로 네트워크 대역이 소진되어 서비스 거부 상태가 됨
- NTP monlist 명령어
- 대응 방안
- 취약한 ntpd 서버 버전 업그레이드 — monlist 기능이 해제된 4.2.7 이상의 최신 버전으로 업그레이드
- 서비스 운영상 4.2.7 이상 버전으로 업그레이드가 어려운 경우 설정 변경을 통해 monlist 기능 해제 — ntp.conf에 disable monitor를 추가하여 monlist 기능을 해제하도록 설정한 후 ntpd 데몬 재시작
- 취약점에 영향을 받는 서버인지 monlist 질의 욫청을 통해 확인
- ntpdc -n -c monlist <점검 대상 NTP 서버>
- -n — 응답 결과의 호스트 주소를 숫자 형식으로 출력할 때 사용
- -c — 질의 명령어 지정
- 점검 대상 NTP 서버 — IP 주소 또는 도메인명을 지정
- ntpdc -n -c monlist <점검 대상 NTP 서버>
- 보안 장비를 통한 차단 — 일반적인 NTP 서버 응답 패킷은 100바이트 이하이고 monlist 질의를 통한 응답 패킷은 400바이트 내외로 발생하므로 패킷 크기를 이용하여 접근 차단
4. SSDP DDoS 취약점
- 개요
- SSDP
- 네트워크상의 서비스나 정보를 검색하는 프로토콜
- 다양한 IoT 기기의 네트워크 탐색 용도로 사용되며 UDP 1900번 포트를 장비 검색 시 사용
- SSDP
- SSDP 취약점을 이용한 디도스 공격 원리
- 동작 방식
- SSDP는 HTTP 프로토콜과 유사한 형태의 요청/응답 형식을 가지고 있음
- 네트워크상의 서비스 검색 요청을 위해 아래와 같이 M-SEARCH * HTTP/1.1로 시작하는 요청 패킷 작성
- M-SEARCH 응답 패킷에는 해당 기기에서 제공하는 서비스 정보가 포함되며 요청 패킷에 비해 사애적으로 매우 큰 응답 패킷으로 인해 증폭 반사 공격으로 악용됨
- 공격 절차
- 공격자는 M-SEARCH 요청 패킷의 출발지 IP를 공격 대상 호스트의 IP 주소로 위조하여 SSDP 지원 IoT 기기로 요청 패킷 전송
- IoT 기기는 트래픽 증폭 반사 역할을 하여 전송받은 패킷에 대한 대량의 응답 패킷 생성
- SSDP 지원 IoT 기기에서 발생하는 증폭된 대량의 응답 트래픽으로 인해 공격 대상 네트워크 장비 및 호스트에 부하를 발생시켜 서비스 거부 상태 유발
- 동작 방식
- 대응 방안
- 업무에 불필요한 UDP 포트 차단 및 UDP 서비스 중지
- 보안 장비를 이용하여 임계치 기반의 UDP 패킷 차단 정책 적용
'정보보안기사' 카테고리의 다른 글
| [정보보안기사(실기)] SECTION 17 정보보호 일반/ 관리 (1) | 2026.07.17 |
|---|---|
| [정보보안기사(실기)] SECTION 15 침해 사고 유형별 시나리오 (2) (0) | 2026.07.06 |
| [정보보안기사(실기)] SECTION 15 침해 사고 유형별 시나리오 (1) (0) | 2026.06.26 |
| [정보보안기사(실기)] SECTION 14 시스템 점검 도구 (0) | 2026.06.16 |
| [정보보안기사(실기)] SECTION 13 보안 장비 운영 (2) (1) | 2026.06.14 |