일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 화학물질안전원
- suninatas
- 여행
- 화학물질불법유통온라인감시단
- MITRE ATT&CK
- 불법유통
- 국정원
- 프로젝트
- 불법유통근절
- 웹 해킹 입문
- 도구모음
- 화학물질
- 기타정보
- Los
- UKPT
- HTML
- PHP
- webhacking
- 대외활동
- Service
- 정보보안
- 경기팀
- UKPT level
- nurisec
- 12기
- 국가정보원
- 파이썬
- 연구모임
- 국가기록원
- codeup
- Today
- Total
agencies
정보보안 기본 개념 2 본문
지식 기반 인증
지식 기반 인증은 우리가 흔히 사용하는 비밀번호를 묻는 방식으로 본인만이 알 수 있는 특정 지식이 필요하다.
지식 기반 인증 방식은 다른 인증 방식에 비해 설계가 간단하여 비용을 절감할 수 있는 장점이 있지만
대부분의 사람은 한 가지 비밀번호를 여러 계정에 사용하고 암기하기 쉬운 비밀번호를 선호하기 때문에 타 인증 방법에 비해 보안 강도는 낮다.
* https://www.security.org/how-secure-is-my-password/
소유 기반 인증
소유 기반 인증이란 말 그대로 본인이 소유하고 있는 특정 매체를 통해 인증하는 방식이다.
이때 매체를 인증 토큰이라고 부른다. 흔히 사용하는 공인인증서가 이에 해당한다.
해당 기술은 인증 시스템 구축이 까다롭고 사용자가 항상 인증 토큰을 소유해야 하기 때문에 편리성이 낮다는 단점이 있고,
부정한 사용자가 복제를 통해 악용할 가능성이 있어 지식 기반 인증이나 생체 기반 인증과 함께 사용된다.
생체 기반 인증
생체 기반 인증은 사용자 본인의 생체 정보를 이용하여 인증하는 방식으로 본인의 의도와는 관계없이 항상 소유하고 있는 육체의 일부이기 때문에 편리성이 높다. 하지만 본인을 식별하는 생체의 정보가 훼손되거나 유출되면
교체가 거의 불가능하다는 단점이 존재한다. 생체를 인증하는 시스템을 구축하는 비용이 다소 높으며 환경에 따라 인식률 차이가 발생할 수 있다. 생체 기반 인증의 대표적인 예로는 지문 목소리 걸음걸이 홍채 등이 있다.
공격기법
사회 공학적 기법
사회 공학적 기법은 시스템을 구성하는 많은 요소 중 수많은 변수를 지닌 인간의 심리를 이용하는 기법으로
2000년 초반 이메일 인터넷 메신저 모바일 기기의 보급이 점차 일반화되면서 사회 공학적 해킹 기법의 무대 또한 크게 증가했다.
사회 공학적 기법을 이용한 유명한 해킹 기법으로는 I Love You 바이러스 사건이 있다.
2000년 5월 해당 바이러스에 감염된 컴퓨터 수만 5천만 건에 달하였는데 이는 이메일을 통해 악성 파일의 클릭을 유도한다.
악성 파일을 클릭하는 순간 레지스트리가 조작되기 때문에 시스템이 종료되어도 바이러스는 남아 있게 된다.
이메일뿐만 아니라 전화나 SMS를 이용해 인간 상호 작용의 신뢰를 바탕으로 보안 절차를 무력화해 원하는 정보를 갈취한다.
피싱은 개인 정보와 낚시의 합성어로 해당 방법들은 오래전부터 지금까지 계속해서 사용되는 방법이다.
사회 공학적 기법 방어법
사회 공학적 기법의 공격은 물리적 보안과 시스템 보안과 정책이 모두 잘 갖추어져 있다고 하더라도 사람의 심리를 공격하여 보안과 정책을 모두 무산시킬 수 있다.
따라서 해당 기법을 방어할 수 있는 가장 효과적인 방법은 개인이 의심 가는 이메일을 열어 보지 않거나 모르는 사람이나 의심 가는 사람을 항상 경계하는 것이다. 이러한 공격 방법이 존재한다는 사실을 인지해야 하고 매체나 광고를 통해 많은 사람이 속지 않을 수 있게 널리 알려야 한다.
서비스 거부 공격
Denial-of-Service Attack의 앞글자를 따서 DoS라고 부르는 공격은 시스템의 자원을 고갈시켜 시스템의 기능을 상실시킵니다. 주로 서버를 목표로 이루어지는 DoS 공격은 수많은 접속을 시도해 다른 사용자의 정상적인 서비스를 제한합니다.
DoS 공격은 점차 발전해 D(distributed)DoS 로 확장되는데 이는 여러 대의 PC를 감염시키거나 동원하여 동시에 특정 서버의 자원을 고갈시키는 공격이다.
DoS공격이 시스템 자원의 고갈이 목적인 반면 DDoS공격은 DoS보다 더 강력하고 규모가 큰 공격이다.
DDoS 공격은 공격을 받고 있는 대상 서버 이외에 같은 네트워크를 이용하는 주변 PC까지 영향을 줄 수 있다.
예를 들어 인터넷과 지역망을 연결하는 라우터에서 수용할 수 있는 대역폭이 초과하면 전체 네트워크에 문제를 일으킬 수 있다.
서비스 거부 공격 방어법
기본적으로 서비스 거부 공격에 대응하기 위해 IPS(Intrusion Pre-vention System)이나 방화벽 등 네트워크 보안에 신경을 쓸 필요가 있다. 이러한 기본적인 솔루션이 갖춰졌다면 갑자기 늘어나는 트래픽 양을 모니터링하고 특정 임계 값에 도달하면 해당 IP주소를 차단하는 방법도 존재한다. 혹은 요즘 웹 사이트에서 흔하게 볼 수 있는 자동입력방지문자를 사용하는 것도 하나의 방법이다.
SYN Flooding 공격이란?
TCP의 연결 수립 과정에서 발생하는 취약점을 이용한 공격 방법으로 SYN이란 여섯 가지 TCP FLAG중 하나로 TCP의 세션을 수립하기 위해 가장 먼저 보내는 패킷이다.
TCP의 연결 수립은 Three-way handshaking이라는 과정을 거친다.
TCP를 수립하기 위해 클라이언트에서 SYN 패킷을 서버에 보낸다 SYN 패킷을 받은 서버는 클라이언트에게 SYN+ACK 패킷을 보내고 그 응답인 ACK 패킷을 기다린다.
SYN+ACK 패킷을 받은 클라이언트는 ACK를 보내고 이 모든 과정이 정해진 TO(time-out)안에 이루어지면 정상적인 TCP 수립이 이루어진다.
SYN Flooding 공격은 해당 수립 과정에서 발생하는 취약점을 이용한다.
특히 서버에서 SYN+ACK 를 보내고 그 응답으로 ACK 를 기다린다는 점을 이용한다.
클라이언트에서 서버가 기다리는 TO보다 더 많고 빠르게 SYN 패킷을 보내 백로그 큐(backlog queue)의 리소스를 초과시켜 네트워크 마비를 유발한다.
SYN Flooding 공격 방어법
SYN Flooding 공격의 방어 방법으로는 서버에서 사용하는 메모리 공간인 Log Queue를 늘려 주는 방법이 있다.
이 방법은 일시적인 효과를 볼 순 있겠지만 늘려 준 메모리 공간마저 초과할 수 있는 단점이 있다.
따라서 해당 방법과 SYN Cookie를 설정하는 방법을 함께 사용하는 것을 추천한다.
SYN Cookie는 ACK를 보낸 정상적인 패킷 요청에만 세션을 생성할 수 있기 때문에 효과적으로 SYN Flooding 공격에 대응할 수 있다.
SQL 인젝션
SQL(Structured Query Language)이란 관계형 데이터베이스 관리 시스템의 데이터를 조작하고 수정하기 위해 만들어진 프로그래밍 언어이다. 데이터베이스에 질의를 보내거나 레코드의 수정 테이블 생성과 같은 다양한 행위를 할 수 있다.
이를 활용한 SQL 인젝션은 데이터베이스의 논리적 오류를 유발하여 원하는 정보를 탈취하는 행위이다.
1998년 처음 발견된 이 공격은 최근 OWASP에서 선정한 최상위 위협 TOP 10위에서 1위로 채택되기도 했다.
공격이 비교적 쉬운 편이고 잘 알려졌음에도 불구하고 데이터베이스를 사용하는 많은 시스템이 보안 대책을 잘 세워 두지 않아 피해를 보곤 한다.
SQL문을 다양한 공격 방법이 있다.
SQL 인젝션 방어법
사용자가 입력한 값에 특수 문자가 포함되는지 검사하거나 부정확한 로그인 시 출력되는 오류 메시지를 숨기는 방법이 존재한다.
이러한 오류 메시지에 데이터베이스의 테이블과 같은 주요 정보가 포함되면 위험할 수 있다.
예를들면 아이디는 맞고 패스워드가 틀렸을 경우 오류 메시지 박스에 뜨는 비밀번호가 틀렸습니다. 라는 메시지는 위험할 수 있다. 이를 통해 해당 아이디가 서버에 존재한다는 것을 유추할 수 있기 때문이다.
DLL 인젝션
DLL(Dynamic Linked Library)이란 프로그램에서 어떤 라이브러리의 기능을 사용 시에만 호출하여 사용하는 기법으로
이러한 동적 링크 기법을 사용하면 각각의 프로그램에서 중복되는 코드가 줄어들어 메모리를 줄일 수 있으며 개발 속도를 높일 수 있다. 따라서 현재 거의 모든 프로그램이 DLL을 사용한다.
DLL 인젝션이란 사용자가 만든 DLL 파일을 타깃 프로세스에 강제로 삽입하는 기법으로 타깃 프로세스에서 사용자가 원하는 행위를 수행하도록 유도할 수 있다. DLL 인젝션에는 여러 가지 방법이 존재한다.
- create remote thread 함수를 이용한 DLL 인젝션 기법
DLL을 삽입하고자 하는 대상 프로세스의 스레드가 인젝션할 DLL에 대해 LoadLibary 함수를 실행한다.
LoadLibrary 함수의 역할은 로드 되는 DLL의 DLLMain 함수를 실행하는 것이기 때문에 타깃 프로세스에 정상적인 DLL이 로드된 것처럼 보인다. 해당 기법의 핵심은 다른 프로세스 내에 새로운 스레드를 숩게 생성할 수 있는 것을 활용하는 것이다.
windows는 api를 통해 createremotethread 함수를 지원하는데 이를 악용하면 정상적인 프로세스에 악의적인 코드가 삽입된다.
DLL 인젝션 방어법
DLL 인젝션 공격은 앞서 설명한 createremotethread 함수를 이용하는 방법 외에 setwindowshookex 함수를 이용하는 등 다양한 방법이 존재한다. 각각의 공격 방법에는 그에 맞는 방어법이 필요하다.
스니핑
스니핑(sniffing)은 사전적으로 코를 킁킁거리다 냄새를 맡다 등의 의미가 있다.
사전적 의미와 유사하게 스니핑 기법은 네트워크상에 전송되는 패킷을 중간에서 도청하는 행위이다.
스니핑의 대표적인 공격으로는 ICMP redirect 공격이 있다.
ICMP(internet control message protocol)란 네트워크에서 발생한 오류를 알리는 프로토콜로 네트워크의 원활한 통신을 가능하게 한다. 예를 들어 네트워크 관리자가 연결 여부를 확인할 때 사용하는 핑 테스트도 ICMP를 이용한 방법이다.
ICMP redirect는 4단계로 나눌 수 있다.
1. 호스트에서 목적지까지 기본 설정이 되어 있는 라우터 A로 패킷을 보낸다
2. 라우터 A는 근처 라우터 B의 경로가 더 최적이라고 판단하여 패킷을 라우터 B로 보낸다
3. 라우터 A는 호스트에게 앞으로는 라우터 B에게 패킷을 보낼 수 있도록 알린다
4. 호스트는 라우팅 테이블을 갱신하고 라우터 B로 패킷을 보낸다
ICMP redirect 공격은 공격자가 라우터 B와 같이 redirect 되는 라우터의 테이블을 조작하거나 공격자의 PC가 라우터 B의 역할을 하는 것 처럼 속여 패킷을 볼 수 있는 공격이다.
스니핑에 취약한 프로토콜로는 암호화를 하지 않거나 기본적인 암호화를 제공하는 프로토콜이 있다.
telnet은 암호화를 하지 않고 패킷을 송수신하며 HTTP는 기본적인 암호화만 지원한다.
스니핑 방어법
이론상 다른 사용자가 패킷을 가로채는 행위를 원천적으로 차단하는 것은 불가능하다.
따라서 스니핑에 대한 최고의 방어 방법은 안전한 암호화 기법을 사용하여 패킷을 송수신하는 것이다.
예를 들어 Telnet을 사용하기보다는 SSH(secure shell)를 사용하고 HTTP를 사용하기보다는 보안이 강화된 HTTPS(http over secure socket)를 사용하여 패킷을 훔치더라도 그 내부 데이터는 알 수 없도록 하는 것이 좋다.
스푸핑
스푸핑(spoofing)은 사전적으로 속이다 사기치다라는 뜻이 있다.
네트워크에서 스푸핑은 MAC주소 DNS주소 IP주소 포트 등과 같은 모든 것이 해당된다.
- ARP 스푸핑 : MAC 주소를 속여 공격 대상 PC와 서버 사이의 네트워크 트래픽을 공격자의 PC로 우회시켜 정보를 획득하는 방식
(방어법) : ARP cache table 을 확인하여 서로 다른 ip주소에 동일한 mac 주소가 사용된다면 arp spoofing 공격이 이루어지고 있다는 것을 알 수 있다. 또한 공격자가 중간에서 메시지를 가로채고 다시 메시지를 전송하기 때문에 네트워크 성능이 떨어진다면 해당 공격이 진행되고 있음을 의심해볼 수 있다.
본 공격을 방어하기 위한 핵심은 공격자의 MAC 주소 변조이기 때문에 MAC 주소를 정적으로 관리하면 자동으로 허위의 mac 주소가 업데이트 되는 것을 방어할 수 있다.
- DNS 스푸핑 : DNS(domain name system)에서 응답하는 IP주소를 변조하거나 도메인 네임 서버를 장악하여 사용자가 의도하지 않은 주소로 유도하는 공격 방법이다. (dns 는 사람이 쉽게 기억할 수 있는 목적으로 만들어진 도메인을 사람이 쉽게 기억할 수 없는 IP주소로 반환해 주는 서버이다)
/etc/hosts 파일에 ip와 대응되는 도메인을 입력하면 사용자가 원하는 연결이 아닌 공격자가 원하는 연결이 가능하다.
이와 같은 공격이 dns 스푸핑이며 공격자가 희생자 PC에 몰래 침투하여 hosts 파일을 변조한다면 의도와는 다른 도메인으로 접속하여 악성 행위를 유발할 수 있다.
(방어법) : 백신 및 최신 윈도우 defender와 같은 시스템 검사 프로그램을 이용한다. hosts 파일이 변조되면 메시지가 발생하여 변경하지 못하게 설정한다.
APT
APT는 advanced persistent threats의 약자로 지능적 지속 위협을 뜻한다.
지능적인 방법을 이용하여 지속적으로 특정 대상을 공격하는 것이다 이는 새로운 해킹 기술은 아니지만 공격 대상이 명확한 사회 공학적 기법을 활용한다. 따라서 APT 공격을 주도하는 조직은 매우 전문적이라고 할 수 있다.
장기간에 걸친 끊임없는 공격으로 목표를 달성한다.
- 스턱스넷 악성 코드는 2010년 SCADA(supervisory control and data acquisition) 시스템을 제어하는 데 성공해 원자력 발전소 작동을 방해하거나 임의로 제어했다.
일반적으로 APT 공격은 4단계로 구분된다.
1. 사전 준비 (공격 대상이 되는 조직이나 기업의 정보 수집, 공격 코드 선정
2. 공격 코드 배포 (목표 조직에 봉사하는 직원에게 의도적으로 접근하여 내부 네트워크 장악 이메일 피싱 봇넷 등 다양한 사회공학적 기법을 사용하여 코드 배포한다)
3. 조직 내부 침입에 성공해 정보를 수집한다. 키로거를 사용하여 주요 정보를 수집하거나 백도어를 설치하여 정상적인 절차를 우회해 지속적인 시스템 침입 가능성을 확보한다.
4. 공격 개시 단계인데 트로이 목마의 일종인 RAT(remote access control)를 활용하여 개인 정보와 조직의 기밀 정보 및 금융 정보를 획득한다
APT 방어법
APT 공격은 명확하게 정해진 유형이 아니기 때문에 이 공격을 완벽하게 차단할 수 있는 장비나 솔루션은 존재하지 않는다.
경영자나 조직 인원은 해당 공격을 막을 수 없다는 인식을 갖고 지속적으로 보안 예산을 확보하여 기업 내 보안 규칙 아래에서 직원 정보보호 교육을 강화하는 등 어제 어디서 발생할지 모르는 공격에 철저히 대비하여 피해를 최소화해야 한다.
문서형 악성 코드
PE 형태가 아닌 HWP DOC XLSX 등의 확장자로 흔히 우리가 자주 사용하는 문서 형태의 악성 코드를 의미한다.
이메일과 SNS로 주로 유포되는 악성 코드는 문서 작성을 편리하게 돕는 매크로 기능을 악용한다.
매크로 언어는 복잡하거나 반복되는 작업을 단순화하거나 자동화하기 위한 목적으로 사용되며 다른 프로그래밍 언어에 비해 가독성이 높다는 장점이 있어 많은 플랫폼에서 유용하게 사용할 수 있다.
문서형 악성 코드 방어법
출처가 불분명하거나 의심되는 파일을 다운받거나 실행하지 않는 것이다. 실행 가능한 파일이 아니더라도 충분히 악의적인 행위를 할 수 있기 때문에 개인이 주의를 기울어야 한다. 그럼에도 불가피하게 문서 파일을 다운받을 일이 있다면 매크로 실행 차단 기능을 적극 활용한다. 워드나 한글 엑셀 같이 이용자가 많은 프로그램은 대부분 매크로 설정에서 매크로 제외 혹은 매크로 보안을 입력할 수 있다. 하지만 어떤 악성 코드는 문서가 열리면 마우스 스크롤을 감지하여 일정 정도 이상 스크롤이 내려가면 악성 행위가 수행되는 방법을 사용하기도 하므로 주기적으로 컴퓨터 백신의 버전을 업데이트하고 본인이 사용하는 PC를 자주 점검하는 것이 좋다.
'Ⅲ. 정보보안' 카테고리의 다른 글
Apache에 php 연동하는 방법 (1) | 2024.02.06 |
---|---|
개인 웹 서버로 위키 만들기 (미디어 위키, XAMPP) (3) | 2024.02.06 |
정보보안 기본 개념 (0) | 2024.02.04 |
컴파일러의 이해 (0) | 2024.02.04 |
페이스트재킹(pastejacking) 실습 (0) | 2024.01.29 |