1. 개념헤어핀 NAT는 내부 네트워크의 클라이언트가 같은 네트워크 내의 서버에 접근할 때, 서버의 공인 IP 주소를 사용하여 통신할 수 있게 해주는 NAT 기술입니다. 이 과정에서 NAT 장치는 트래픽을 내부에서 내부로 "헤어핀" 모양으로 돌려보내기 때문에 Hairpin NAT란 명칭을 사용합니다. 이 기술을 통해 내부 클라이언트는 외부 사용자와 동일한 공인 IP 주소나 도메인 이름을 사용하여 내부 서버에 접근할 수 있습니다. 이는 네트워크 구성의 일관성을 유지합니다. 또한, 내부 통신이 외부 네트워크를 거치지 않고 직접 이루어지기 때문에 불필요한 네트워크 트래픽이 줄어들어 응답 시간이 단축됩니다. 더불어, 내부 통신 패킷이 외부로 나가지 않아 중간자 공격(MITM) 등의 보안 위험이 감소하여 전반적인..
주통기 서버가이드 기반으로 작성하였고, Locky Linux 기반이며 서버 조치 중 애매하거나 확인 필요했던 부분에 대해 나중에 다시 보기 위해 정리하였습니다. U-09 /etc/hosts 파일 소유자 및 권한 설정 1) 평가 기준 양호 : /etc/hosts 파일의 소유자가 root이고, 권한이 600 이하인 경우 취약 : /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600 이상인 경우 2) 목적악의적인 사용자가 hosts파일을 읽거나 변조를 통해 DNS를 우회하여 파밍 공격 등에 악용될 수 있기 때문에 root를 제외한 다른 사용자는 해당 파일을 접근할 수 없도록 설정하기 위함이다. hosts 파일을 600으로 설정하면 보안상 가장 좋겠지만, 리눅스에서 root가 아닌 일반 사..
1. 개요 Jenkins란 Java 기반의 오픈소스 CI 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 업로드함으로써 지속적 통합이 가능하다. 영향을 받는 버전 Jenkins: 2.441 버전 이하 LTS: 2.426.2 버전 이하 CVSS: 9.8점 2. 상세 분석 공격 설명 CLI 명령어 내에 있는 임의 파일 읽기 취약점으로 인증되지 않은 공격자가 Jenkins 컨트롤러 파일 시스템에서 arags4j 라이브러리를 통해 문자 인코딩을 악용하여 모든 프로그램 파일을 읽을 수 읽을 수 있다. arags4j 라이브러리에서 매개 변수 @문자 뒤에 파일 경로를 입력하면 해당 파일을 읽고 결과 값을 반환한다. 공격 테스트 해당 취약점..
1. 개요 OFBiz 솔루션이란 Apache에서 만든 무료 오픈소스 ERP이다. 해당 취약점은 이전 발생한 Apache OFBiz XMLRPC Deserialization RCE (CVE-2020-9496), Apache Ofbiz xml-RPC RCE( CVE-2023-49070)취약점의 불안전한 패치로 인해 로그인 인증 우회 및 SSRF 취약점이 존재한다. CVSS 점수: 9.8점 영향을 받는 소프트웨어: Apache OFBiz 버전 16.11.x 및 이전 버전 SSRF(Server Side Request Forgery) 란? 적절한 검증절차를 거치지 않은 사용자 입력값을 서버 간에 요청에 사용하여 악의적인 행위가 발생하는 취약점이다. 공격자가 조작된 요청을 공개된 웹서버에 전송하여 웹서버가 내부 네..
1. 서론 최근 뉴스를 보면 크리덴셜 스터핑으로 인한 기업의 피해가 다수 발생하는것을 알 수 있다. 크리덴셜 스터핑의 개념과 대응방법에 대해 알아보려고 한다. 2. 크리덴셜 스터핑(Credential Stuffing) 이란? 이전 공격에서 유출된 자격 증명(Credential)을 소프트웨어 도구를 이용하여 다른 계정에 무작위 대입(Stuffing)하며 성공할 경우 주민등록번호, 신용카드 정보 등 사용자 정보를 탈취하는 공격이다. 공격자는 크리덴셜 스터핑 공격이 생겨나기 이전에 다양한 툴을 이용하여 Brute Force Attack, Dictionary Attack, Rainbow Table Attack 등 다양한 공격을 통해 사용자의 정보를 흭득해 왔다. 크리덴셜 정보를 일반 웹 또는 다크웹을 통해 얻은..
1. docker 설치 docker에 필요한 패키지 설치 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 도커 패키지 저장소를 인증하기 위한 인증 키 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 인증키가 정상적으로 추가 되었는지 확인 sudo apt-key fingerprint 0EBFCD88 안정 버전을 제공하는 저장소 추가 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/lin..
1. 웹 서버 취약점 1) 디렉터리 리스팅(Directory Listing) 1.1) 개념 웹 어플리케이션을 사용하고 있는 서버에 인덱싱 기능이 활성화 되어있을 경우 공격자가 브라우징을 통해 서버내 모든 디렉터리 및 파일 목록을 볼 수 있는 취약점을 말한다. 7.2) 대응 방안 웹서버의 인덱싱 기능을 제거한다. httpd.conf Options 속성에 Indexes 설정을 제거한다. 제거하게되면 접근 시 403 에러가 발생한다. Options None AllowOverride All IIS 홈 디렉터리 항목에서 디렉터리 검색 기능을 해제 한다. Tomcat web.xml 파일 안의 default 서블릿 초기 파라미터 설정에 listings 파라미터를 false로 설정한다. listings false 2)..
1.웹 서비스 공격 개요 공격 유형은 사용자 컴퓨터 공격과 웹서버 공격으로 나뉜다. 웹서버에 대한 공격은 방화벽 필터링을 통과하여 내부 네트워크를 공격하는 시작점이므로 주의해야한다. 1) OWASP TOP10 (2021) A01: Broken Access Control(취약한 접근 제어: 권한/인가) A02: Cryptographic Failures(암호화 실패) A03: Injection(인젝션) A04: Insecure Design(안전하지 않은 설계) A05: Security Misconfiguration (보안 설정 오류) A06: Vulnerable and Outdated Components(취약하고 지원이 종료된 구성 요소) A07: Identification and Authentication..
1. SNMP (Simple Network Management Protocol) 란? TCP/IP 네트워크 상에서 관리자가 원격으로 네트워크상 각 호스트로부터 정기적으로 관리 정보를 자동으로 수집하거나 실시간으로 감시하고 관리할 수 있도록 해주는 기술이다. SNMP는 프로토콜일 뿐이며 이를 관리하기 위해서 는 NMS 프로그램이 필요하다. Application 계층 프로토콜이며 단순 요청 응답 형식의 프로토콜에 의해 교환되기 때문에161(Agent),162(Manager) UDP 프로토콜을 사용한다. NMS 란? 네트워크상의 자원들을 모니터링하고 제어하기 위한 도구로, 전체 시스템에서 관리하는 네트워크 요소의각 지점과 특정한 속성에 주소와 이름을 지정하고 주기적으로 각 요소가 가진 정보를 중앙 제어 센터에..
1. FTP (File Transfer Protocol) 란?하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답 등의 제어정보를 위해 사용된다.FTP의 경우 평문전송을 수행하여 정보가 노출될 수 있기 때문에 SFTP(22/tcp) 또는 FTPS(990/tcp) 사용을 권장한다.2. FTP 전송모드전송모드 기본 값은 Active Mode이고 클라이언트가 Active또는 Passive Mode를 선택할 수 있다.데이터 포트요청은 Active의 경우 클라이언트가 Passive인 경우 서버가 요청한다. 1) 능동 연결(Active Mode)Active Mode의 작동 방식① 클라이언트가 서버의 2..
1. HTTP 웹 상에서 클라이언트와 서버간에 통신을 위해 개발된 프로토콜이고 상태정보를 유지하지 않는다. 상태정보를 유지하기 위해서 클라이언트 기술인 쿠키 또는 서버 기술인 세션을 활용한다. 1) HTTP 1.0, 1.1 개념 HTTP 1.0 비 영속적 연결(end-of-file) 많은 클라이언트의 요청을 처리하기 위해 HTTP 요청에 대한 서버의 HTTP 응답 이후에 TCP연결을 바로 종료하는 구조이다. 이는 서버 입장에서 통신을 위한 다수의 TCP 연결 설정 및 종료에 대한 부하가 발생한다. HTTP 1.1 Connection 헤더에 Keep-Alive 옵션이 추가되어 영속적 연결을 유지한다. TCP 연결 설정 및 종료에 대한 부하를 줄일 수 있다. Keep-Alive 일정시간 지속시키는 옵션 ti..
1. 프로토콜 신뢰성 있고 효율적으로 전송하기 위한 통신 규약 구문(Sentax): 데이터의 형식이나 부호화 및 신호 레벨 등을 규정 의미(Semantics): 전송의 조작이나 오류 제어를 위한 제어정보 규정 타이밍(Timing): 접속되어 있는 개체 간의 통신 속도의 조정, 메시지 순서 제어 등을 규정 2. OSI 모델 국제 표준화 기구(ISO)에서 재정한 개방형 시스템 간의 상호연결 모델이다. 분산된 이기종 시스템간의 네트워크 상호호환을 위해 필요한 표준 아키텍처를 정의한 참조모델이다. 하위계층: 물리 계층, 데이터 링크 계층, 네트워크 계층 상위계층: 세션 계층, 전송 계층, 표현 계층, 응용 계층 캡슐화(encapsulation): 상위 계층에서 통신 부가정보(헤더) 추가 후 하위 계층으로 이동 ..
1. 패스워드 크래커 (Password Cracker) 1) 사전 공격 (Dictionary Attack) 패스워드에 자주 사용되는 단어들은 Dictionary 파일로 만든 후 하나씩 대입하여 일치여부를 확인하는 크래킹 방법이다. 공격 대상의 개인 정보를 충분히 알고 있다면 매우 효율적인 공격이다. 해시된 패스워드들을 수집한 후 사전에 있는 단어와 비교하여 일치할 때까지 비교 작업을 수행한다. 2) 무차별 공격 (Brute-force Attack) 패스워드에 사용될 수 있는 문자열의 범위를 정하고 그 범위 내에서 생성 가능한 모든 패스워드를 생성하여 대입한 후 패스워드가 일치 여부를 확인하는 크래킹 방법이다. Dictionary Attack 공격이 실패할 경우 Brute Force Attack 공격을 수..
1. 윈도우 개요 1) 윈도우 시스템의 구조 링 기반으로5개의 링이 존재한다. HAL(Hardware Abstraction Layer): H/W와 S/W가 원활하게 통신할 수 있도록 한다. 마이크로 커널: H/W와 통신하는 최소한의 커널 (system32\ntoskrn.exe) 2. 윈도우 파일 시스템 클러스터(Cluster): 여러개의 섹터들을 하나의 묶음으로 하여 공간 할당 단위로 사용한다. (디스크 공간 할당의 논리적 단위) CONVERT 유틸리티를 통해 FAT 16,32를 NTFS로 변경할 수 있다. FAT 뒤의 숫자는 표현 가능한 최대 클러스터 개수와 관련되어있다. FAT16 FAT32 NTFS 암호화 및 압축 X X O 클러스트 크기 2GB 기준 32KB 4GB 기준 4KB 가변 클러스터 (5..