FTP: 서버와 클라이언트 사이에 파일을 전송할 때 사용하는 프로토콜최근에는 FTPS, SFTP등 암호화 통신을 지원하는 파일 전송 프로토콜이 등장하며 보안이 많이 강화됨FTP 전송 방식은 액티브모드와 패시브모드 두개로 나뉨 일반적으로 액티브 모드를 하면 서버에서 클라이언트로 연결하는 과정에서 클라이언트 장치의 방화벽에 FTP 연결이이루어 지지 않는 경우가 존재하여, 패시브 모드를 통해 FTP를 연결 우분투 리눅스에서 FTP 서버 지원 패키지는 vsftpd, Pure-FTPd주로 vsftpd 사용하며, 익명모드이고 암호화 통신 프로토콜인 SSL/TLS 프로토콜을 활용한 FTPS 서비스를 지원 암호화 되지 않은 기본 FTP 프로토콜을 사용하면 공격자가 ARP 스푸핑 공격이나 네트워크 스니핑을 통해 공격이 ..
서버는 대부분 IDC, 클라우드 등과 같은 곳에서 서버를 운영하고, SSH와 VNC 같은 운격 접속 소프트웨어로 서버를원격으로 관리.현재 실습하는 서버 환경 우분투 20.04 버전에서는 기본적으로 SSH, VNC, XRDP등이 활성화 되어 있지 않으므로 실습을 위해 환경 구축 필요. 원격 접속을 위한 환경 구축1. 우분투에서 SSH로 사용하는 OpenSSH를 설치 2. 설치 후 SSH 서비스 작동 여부 확인 3. GUI 데스크톱 환경을 설치하기 위해 XFCE, XRDP 설치 4. 설치 후 시스템 작동 여부 확인 5. XRDP 설정 파일에서 원격 접속을 위해 코드 추가 후 서비스 다시 시작 위 과정을 통해 SSH와 XRDP 설치 후 정상 서비스 시작 시 원격에서 PuTTY와 같은 SSH 클라이언트로서버 ..
데이터베이스 해킹데이터베이스 해킹은 주로 데이터베이스가 웹 서버와 연동된 상태에서 발생 대표적인 데이터베이스 해킹 형태1. 웹 서비스와 데이터베이스 연동 과정에서 통신을 조작해 정보를 유출2. 데이터베이스 통신 포트가 외부에 노출되어 접근 가능한 경우 무차별 대입 공격 데이터베이스 사고 분석1. 웹 로그를 분석2. ModSecurity와 같은 보안 모듈에서 탐지된 로그를 통해 확인 데이터베이스 보안데이터베이스의 접근 통제, 통신 보안, 가용성, 암호화등 다양한 요소에 보안이 필요 데이터베이스 초기 설정1. MariaDB를 바탕으로 데이터베이스 보안 설정에 대해 실습해봄2. MariaDB를 설치 후 정상 실행되는지 확인 3. Maria DB에서 제공하는 초기 보안 설정을 통해 보안 설정을 해야함 4..
심볼릭 링크 기능 비활성화공격자의 서버 디렉토리 경로에 대한 접근을 막기 위해서는 심볼릭 링크 기능 비활성화 필요/etc/apache2/apache2.conf 파일의 /var/www/ 안에 있는 Options Indexes FollowLinks에서 FollowSymLinks를 삭제삭제 후 systemctl restart apache2 명령어를 통해 수정 내용을 서버에 반영* 심볼릭 링크: 파일이나 폴더에 대한 참조를 포함하는 파일을 말함(ex: 윈도우 바로가기) 디렉터리 리스팅 비활성화/etc/apache2/apache2.conf 파일의 Options Indexes를 Options None으로 수정웹 서버를 다시 실행하여 수정 내용을 서버에 반영웹 서버 정보 노출 차단/etc/apache2/apache2..
웹 서버 취약점 디렉터리 리스팅(취약점)웹 서버에 접속자가 디렉터리 구조나 파일명을 파악하고 다운로드 할 수 있게 함공격자가 웹 서버 구조 파악 후 정보를 수집할 위험이 존재웹 서버를 기본적으로 설치하고 별도 보안이 없을 경우 공격이 흔히 발생됨웹 서버 버전의 노출(취약점)우분투는 오류 페이지에 웹 서버 기본 정보 노출됨공격자가 서버 버전을 확인할 경우 해당 버전의 취약점을 집중 공략하여 공격이 가능SQL 인젝션 공격(해킹)어플리케이션과 데이터베이스를 연동하여 통신하는 과정에서 이루어지는 공격주로 인증 과정을 우회하여 계정에 접근하거나 특정 명령어를 실행XSS(취약점)웹사이트에서 주로 나타나는 취약점으로 게시판에 글을 작성할 때 사용자가 입력한 값을 검사하지 않은 경우 발생게시판 악성 스크립트를 삽입하여..
PAM(인증모듈)을 활용한 사용자 계정 보안 PAM의 네 가지 기능 모듈authentication module: 비밀번호, 공개 키를 이용하여 사용자 신원을 확인하는 모듈account module: 계정 만료, 특정 서비스 접근 권한 등 인정 조건을 검사하는 모듈password module: 비밀번호 갱신, 비밀번호 복잡도 등을 설정하는 모듈ㅌ`session module: 사용자 세션의 시작부터 끝까지 가능한 작업을 정의하는 모듈 PAM의 구성 파일PAM은 /etc/pam.d/ 폴더 밑에 제어하고자 하는 명령어 또는 서비스에 해당하는 구성 파일을 만들어 제어 가능PAM 구성 파일의 종류는 4가지 모듈 타입어떤 종류의 인증 모듈을 사용할 것인지 지정하는 필드(authentication, account, p..