Docker란? Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다. 우리에게 익숙한 가상화 플랫폼인 VMware와 VirtualBox는 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식이다. 이 방식은 여러가지 OS를 가상화할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없다. 이와 달리 도커는 OS가 아닌 프로세스를 격리 하는 방식이다. 리눅스에서는 이 방식을 리눅스 컨테이너라고 하고, 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다. 여러 개의 컨테이너들을 동시에 구동해도 서로 영향을 미치지 않고 독립적으로 실행되기 때문에 마치 가벼운..
CVE - 알려진 공통 취약점 ex) 로그인 페이지에 문자열 필터링 기능이 없어 SQL Query 문을 이용하여 데이터베이스를 탈취 CWE - 소프트웨어 취약점 목록 ex) 로그인 페이지에 문자열 필터링 CCE - 소프트웨어 취약한 설정, 구성에 대한 점검 - 소프트웨어 보안 강화 구성 (하드닝) ex) apache2 index of / 클라우드 주요 보안 위협 1. 데이터 유출/손실 - 데이터에 대한 삭제, 수정, 손실 - 암호화키에 대한 분실 또는 도난 - 인증 및 엑세스 제어의 부적절한 인증으로 클라우드 데이터에 대한 불법적 접근 2. 클라우드 서비스의 공격 - 공격자는 클라우드 서비스에 대한 익명 엑세스 후 다양한 연속적 공격 수행 ① 암호 및 암호화 키에 대한 크랙 ② CAPTCHA 우회 시도 ..
본 실습은 이전 포스팅에서 가상환경으로 구축한 pfSense 방화벽과 윈도우 호스트(192.168.30.3)에서 진행한다. 목표는 가상환경이 아닌 PC의 구글 브라우저에서 가상환경에 구축한 윈도우 7 호스트인 192.168.30.1:80으로 접근하는 것이다. pfsense 에서 기본적으로 개인 네트워크 용으로 사용된 IP주소들을 차단하기 때문에, 실습에 앞서 WAN 첫번째 룰의 설정부분의 아래 Block private networks and loopback addresses를 체크 해제 후 [save] → [apply] 한다. WAN으로 들어오는 패킷은 다음과 같다. 이때 포트 번호는 임시로 할당한다. 출발지: 192.168.0.1 목적지: 192.168.0.130:44444 이 패킷이 방화벽을 통과하여..
사전 설정 네트워크 어댑터(Network Adapter)란 서버, 근거리 통신망(LAN) 또는 네트워크 장치를 통해 컴퓨터끼리 서로 통신할 수 있게 하는 하드웨어 구성요소이다. 실습에 앞서 pfSense용 Ubuntu 가상환경을 만든 후, LAN 인터페이스의 IP를 Virtual Network Editor 프로그램을 통해 설정한다.(VMnet1) 방화벽의 NIC는 외부로 나가는 WAN과 내부로 가는 LAN 두개가 필요하다. 그러므로 가상환경에서 네트워크 어댑터를 추가적으로 설정해줘야 한다. 기본값인 NAT이 아니라 임의로 설정한 LAN인 VMnet1으로 변경해줘야 한다. 이후 pfSense 설치를 마치면 WAN과 LAN이 설정된다. 다음은 고정 IP를 선언해준다. NAT의 경우는 자동으로 설정되지만..
Blind SQL Injection DB 에러 페이지 등이 노출되지 않아 SQL Injection 취약점 존재를 판단하기 어려울 경우 사용되는 기법입니다. 참 쿼리와 거짓 쿼리를 삽입 후 페이지의 서로 다른 반응이 존재하는지 확인하는 방법으로, 참쿼리에 대한 반응과 거짓 쿼리에 대한 반응에 차이점이 존재할 경우 Blind SQL이 존재한다고 판단합니다. 주로 DB의 Table, Column 등 구조 파악 등 정보 유출의 위험성을 가지고 있으며, 공격자가 일일이 쿼리문을 변경해나가면서 응답하는 참/거짓을 보고 판단을 해야하기 때문에 공격에 대한 공수가 많이 드며, 직관적이지 않습니다. 실습 참 쿼리와 거짓 쿼리 하나씩 날려보겠습니다. 정자동' and 1 = 1 -- >> 참 정자동' and 1 = 2 --..
공격 시나리오 웹 서버의 접근이 불가능하다는 보고를 받았으니 침해사고를 파악하고, 보안 장비를 활용하여 적절한 조치를 취하는 실습입니다. Slowloris Dos 공격은 HTTP 헤더의 끝내 불완전한 데이터를 포함시킨 패킷을 다량 전송하여 서버의 가용 자원을 모두 소진하는 DoS 공격입니다. 일반적인 HTTP 패킷의 헤더에는 헤더 종료 개행 문자 하나와 전체 헤더 종료 개행 문자 총 두개가 포함되어야하지만, 헤더의 마지막에 개행 문자를 하나만 전송하면, 웹 서버는 헤더가 모두 도착하지 않았다고 간주하고 대기 상태를 유지합니다. 서버 자원이 잠식되는 것입니다. 이번 포스팅에서는 위 시나리오 공격에 대한 다음과 같은 대처 방안을 실습합니다. ① 패킷 분석을 통해 과거 공격자의 IP를 확인 ② IPS 차단 정..
웹 해킹 공격 시나리오 공격 시나리오는 다음과 같습니다. 공격자가 웹 취약점을 이용하여 PUT 메서드를 통해 웹쉘을 업로드합니다. 웹쉘이 업로드 되면서 피싱 사이트 링크를 삽입하고, 유저가 이에 접근하면 피싱 사이트 링크로 인해 피싱 사이트로 리다이렉트되는 공격입니다. 이번 포스팅에서는 위 시나리오 공격에 대한 다음과 같은 대처 방안을 실습합니다. ① WAF에 차단정책(Default 정책)을 설정 ② 방화벽을 이용하여 공격자 IP 차단 ③ 웹쉘 삭제 및 백업 파일을 이용하여 웹 서버 코드 복원 공격자가 사용한 피싱 도메인과 도메인의 IP User01의 방문 기록을 보면 kisa.co.kn 이라는 수상한 도메인에 방문한 기록이 있습니다. 그렇다면 이 도메인의 IP를 확인해봅니다. 명렁 프롬프트 창에서 다음..
워터링 홀 공격 및 시나리오 워터링 홀 공격이란 공격대상이 방문할 가능성이 있는 합법적 웹사이트에 미리 악성코드를 심어 놓은 뒤 잠복하면서 피해자의 컴퓨터에 악성코드를 추가로 설치하는 공격을 말합니다. 마치 사자가 먹이를 습격하기 위해 물웅덩이(Watering Hole) 근처에서 매복하고 있는 형상을 빗댄 것으로, 표적 공격(APT 공격)의 일종이라고 볼 수 있습니다. 워터링 홀은 사전에 공격 대상에 대한 정보를 수집한 후 주로 방문하는 웹사이트를 파악, 해당 사이트의 제로데이(Zero-Day) 등을 악용해 접속하는 모든 사용자에게 악성 코드를 뿌리기 때문에 사용자가 특정 웹사이트에 접속만 하여도 악성코드에 감염됩니다. 공격 시나리오는 다음과 같습니다. 웹서버의 SSTI 취약점을 활용하여 페이지가 변조되..
공격 시나리오 공격 시나리오는 다음과 같습니다. User01가 Mail 서버에서 악성 코드가 내재된 메일을 전달 받고, 악성 코드의 리버스 쉘이 실행되면서 C2 서버와 연결이 설정됩니다. 이를 통해 C2 서버는 Eternalblue 공격을 통해 내부 침투를 수행합니다. ※ Eternalblue 공격 패턴 특징: '00 00 00 00 00 00 00 10' 값을 전송 실습 수행 1. 악성 프로세스 종료 및 파일 삭제 User01의 가상환경의 브라우저에 mail.co.kr로 접속하여 메일을 확인합니다. 메일에 포함된 실행 파일이 실행되고 있는지 확인하기 위해 윈도우의 [작업 관리자] → [세부 정보]에 update.exe 파일이 실행되고 있는지 확인합니다. PID가 4484인 update.exe 파일이 실..
업무망 방화벽 정책 설정 시나리오 기준, 업무망에서 외부 혹은 DMZ로 접근 시에는 모두 가능입니다. 방화벽 정책 추가 업무망은 출발지가 네트워크 망 상에 192.168.42.0/24 대역이므로 출발지 설정에 앞서 인터페이스 객체를 만드는 것처럼 망 또한 객체를 만들어줍니다. 그리고, 시나리오에 맞게 목적지를 설정합니다. 업무 → 외부, DMZ는 모두 이므로 다음과 같이 설정할 수 있습니다. NAT 정책 추가 외부와 통신할 때는 사설 IP(업무망, 192.168.42.0/24)가 아닌 공인 IP(13.124.137.1)로 접속할 수 있도록 정책을 설정해야합니다. 여기서 중요한 것은 정책 설정 순서입니다. 정책은 순차적으로 적용되기 때문에 방금 추가한 NAT 정책은 최하위로 이동해야합니다.