본문 바로가기
Linux 보안

리눅스 보안 3

by Mostlove 2025. 3. 10.
728x90
반응형

🔹 해킹 및 보안 관련 정리 🔹

Kali Linux & BackTrack 🖥️🔍

  • Kali Linux와 BackTrack은 해킹 및 보안 전문가들이 사용하는 침투 테스트(펜테스트)용 OS
  • Ubuntu 기반으로 제작되었으며, 다양한 해킹 및 보안 도구가 기본 내장되어 있음
  • 일반 Ubuntu를 사용할 경우, 추가적으로 해킹 도구를 설치하고 설정해야 하는 번거로움이 있음

Telnet vs SSH 보안 차이 🔐

 

항목 Telnet SSH
보안 수준 ❌ 암호화 없음 → 해킹 취약 ✅ 암호화 사용 → 보안 강력
데이터 전송 방식 평문(Plain Text) 전송 → 해커가 쉽게 읽을 수 있음 암호화(Encrypted) 전송 → 해커가 읽을 수 없음
세션 하이재킹 위험 ✅ 매우 높음 → 데이터 노출 가능 🚫 낮음 → 암호화된 데이터로 보호됨
포트 번호 기본 23번 포트 사용 기본 22번 포트 사용
실제 사용 여부 현재는 거의 사용되지 않음 원격 접속 시 필수 보안 프로토콜

📌 결론:

  • 해킹 및 보안 분석을 위해서는 Kali Linux를 활용하는 것이 편리함 🚀
  • Telnet은 보안이 취약하므로 사용하지 말고, SSH를 사용할 것! 🔐

🔹 데이터베이스 관련 정리 🔹

MySQL → MariaDB

  • MySQL은 원래 Sun Microsystems가 개발했으며, 이후 Oracle이 인수하여 유료화됨.
  • 이에 따라 MariaDB라는 무료 오픈소스 데이터베이스MySQL의 개발자들에 의해 만들어졌음.
  • MariaDBMySQL과 호환되며, 무료로 사용 가능하고, 커뮤니티 기반으로 개발됨.

Wireshark

  • 이전에 EtherReal이라는 이름으로 존재했으나, 판권 문제로 인해 Wireshark라는 새로운 이름으로 변경하여 오픈소스 패킷 분석 도구로 제공됨.

🔹 MySQL 명령어 사용법 정리 🔹

📌 로그인 명령어

  1. 올바른 로그인 예시
    •   root 사용자rootoor 패스워드로 MySQL에 로그인.
  2. mysql -u root -prootoor
  3. 잘못된 예시 (데이터베이스 명시 오류)
    •   여기서 rootoot는 데이터베이스 이름이지만, 실제로 해당 데이터베이스가 없으므로 오류 발생.
    •   올바른 명령어: mysql -u root -p (패스워드는 로그인 후 입력)
  4. mysql -u root -p rootoot

🔹 GRANT 명령어를 통한 권한 설정 🔹

📌 권한 부여 예시

  1. 로컬에서 root 사용자에게 모든 권한 부여
    •   root 사용자는 로컬에서 모든 데이터베이스 및 테이블에 대한 권한을 가진다.
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'rootoor';
  3. 원격에서 root 사용자에게 모든 권한 부여
    •   원격지에서 root 사용자와 rootoor 패스워드로 로그인하여 모든 권한을 가질 수 있다.
  4. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rootoor';
  5. 권한 회수
    •   권한을 회수하는 명령어로, 필요한 권한만 부여하도록 관리한다.
  6. REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost';

🔹 데이터베이스 스키마와 제약조건 🔹

📌 스키마(Schema)

  • 스키마는 데이터베이스 테이블을 구성하는 규칙으로, 테이블을 만들 때 이름, 데이터 타입, 크기 등을 지정한다.
    예:CREATE TABLE example ( id INT(3) PRIMARY KEY AUTO_INCREMENT, name CHAR(30) NOT NULL );
    • id: INT 타입, 크기 3, PRIMARY KEYAUTO_INCREMENT
    • name: CHAR(30) 타입, NOT NULL 제약조건

📌 제약조건(Constraints)

  • NOT NULL: 해당 컬럼은 NULL 값을 가질 수 없음
  • PRIMARY KEY: 중복되지 않는 값이어야 하며, 테이블에서 유일한 식별자 역할
  • FOREIGN KEY: 다른 테이블의 기준이 되는 컬럼과 관계를 설정
  • UNIQUE: 컬럼의 값이 중복되지 않도록 보장

**침투를 Penetration Test(=Pen Test)라고 한다. <= 이런 작업을 수행하는 사람을 Whitehat 이라고 부른다.

🔹 Proxy Server (프록시 서버) 개념 정리 🔹

프록시 서버 (Proxy Server)

  • 프록시 서버인터넷 접속을 대신해주는 서버로, **로컬 네트워크(LAN)**의 클라이언트들이 외부 인터넷에 접속할 때 중개 역할을 함.
  • Cache Server라고도 불리며, 자주 요청되는 웹 페이지나 데이터를 캐싱하여 성능을 향상시킬 수 있음.

🔹 프록시 서버의 역할과 작동 원리 🔹

  1. DNS 캐싱 (Domain Name System)
    •   로컬 네트워크의 각 노드들이 인터넷에 접속할 때, 먼저 DNS 서버를 통해 웹사이트의 도메인 이름IP 주소로 변환함.
    •   예: www.naver.com -> 203.234.235.101
  2. 프록시 서버의 작동
    •   로컬 LAN에 프록시 서버를 설정하면, 각 클라이언트가 인터넷에 접속하려 할 때 DNS 서버를 거치기 전에 프록시 서버로 먼저 요청함.
    •   프록시 서버가 도메인 이름과 해당 IP 주소를 미리 저장해두고 있기 때문에 DNS의 Name Resolution 과정을 생략할 수 있어 더 빠르게 웹사이트에 접속할 수 있음.

🔹 프록시 서버의 보안 위험성 🔹

  • 패킷 가로채기 (Packet Sniffing)
    • 프록시 서버를 악용하면, 중간에서 웹 트래픽을 가로채고 패킷을 분석하여 데이터 값을 변경할 수 있음.
    • BurpSuite와 같은 도구를 사용하면 웹 요청/응답 패킷을 분석하고, 중요한 정보를 변조할 수 있음.
    • Paros와 같은 도구는 BurpSuite보다 간단한 버전으로, 트래픽을 캡처하고 변경하는 데 사용됨.
  • 프록시 서버 해킹
    • 프록시 서버를 해킹하면, 로컬 네트워크의 모든 트래픽모니터링하고 가로챌 수 있는 위험이 발생.
    • 이를 통해 사용자들의 인터넷 사용 기록개인 정보를 쉽게 탈취할 수 있음.

🔹 프록시 서버를 이용한 보안 위협 예시 🔹

  1. 인터넷 접속 기록 감청
    •   프록시 서버를 통해 모든 웹사이트 접속 기록을 볼 수 있으며, 이를 통해 사용자의 온라인 활동을 추적할 수 있음.
  2. 중간자 공격 (MITM)
    •   공격자가 프록시 서버를 해킹하거나 설정을 변경하면, 중간자 공격을 통해 사용자의 요청과 응답을 변조할 수 있음.
    •   예: 사용자의 로그인 정보개인 데이터를 탈취하는 데 사용될 수 있음.

🔹 악성코드 종류 및 방어 방법 정리 🔹

 

악성코드 종류 설명 방어 방법
Virus (바이러스) 정상적인 파일이나 MBR(Master Boot Record)에 감염되어 다른 파일을 감염시키고 증식하는 프로그램. MBR이 오염되면 부팅에 지연이 발생. - ClamAV와 같은 안티바이러스 프로그램 사용 🛡️
- VirusWall을 설정하여 내부 네트워크에서 바이러스 확산 방지 🚫
Worm (웜) 숙주 없이 스스로 복제하고 증식하여 네트워크를 감염시키는 프로그램. 주로 메일이나 웹사이트를 통해 전파됨. - 메일과 웹사이트에서 의심스러운 링크나 첨부파일 열지 않기 ❌
- Firewall네트워크 보안 강화 🔒
Trojan Horse (트로이 목마) 정상적인 소프트웨어처럼 위장한 악성 프로그램으로, 백도어를 통해 해커가 시스템에 접근할 수 있도록 함. - 출처가 불명확한 소프트웨어메일 첨부파일 다운로드 금지 🚫
- 정기적인 시스템 점검 (Rootkit 점검)
- 로컬 형상서버(Configuration Server) 운영하여 악성 코드 제거 🔧
Bot (좀비 PC) 감염된 PC가 DDoS 공격 등에 사용되는 프로그램. 여러 감염된 PC가 모여 BotNet을 형성. - DDoS 공격 방어: Reverse IP Filtering 사용 🔄
- iptables 또는 라우터 ACL 설정으로 비정상적인 트래픽 차단 🚧
BotNet Bot들이 모여 구성된 네트워크로, DDoS 공격과 스팸 메일 전송 등에 사용됨. - Reverse IP Filtering을 통해 DDoS 공격을 차단 🔒
- 패턴 기반 네트워크 모니터링을 통한 이상 트래픽 탐지 🚨
Rootkit (루트킷) 해커가 타겟 시스템에 침투 후, 백도어를 숨기거나 로그를 삭제하여 추후 침투가 가능하도록 만드는 악성 프로그램. - Rootkit 탐지 도구rootkithuntercheckrootkit 사용하여 점검 ✅
- 시스템 보안 강화최소 권한 원칙 적용 🔐
     
/etc/rc.local 악성코드 시스템이 부팅되기 전에 실행되는 /etc/rc.local에 악성 코드를 삽입하여 부팅 후 자동으로 악성 코드가 실행되게 함. - /etc/rc.local 파일 검토 및 자동 실행 파일 모니터링 ⚠️
- 보안 패치시스템 무결성 검사 수행 🔧

🔹 ClamAV 개요 및 기능 🔹

ClamAVLinux 시스템을 위한 무료 오픈 소스 안티바이러스 프로그램입니다. 주로 Linux 시스템에서 바이러스 감염 예방을 위한 도구로 사용됩니다. Linux 시스템에서 바이러스 감염 사례는 적지만, 머신 간 데이터 이동 과정에서 감염된 파일을 공유 디렉토리에서 가져오면 감염될 수 있기 때문에 예방 차원에서 ClamAV를 설치해 두는 것이 좋습니다.


🔹 ClamAV 주요 기능 🔹

  • 바이러스 및 악성코드 탐지
    ClamAV는 trojans, viruses, malware, malicious software 등 다양한 종류의 악성코드를 탐지하고 차단합니다.
  • 다양한 파일 포맷 지원
    ClamAV는 다음과 같은 다양한 파일 포맷을 지원하여 널리 사용됩니다:
    • ELF, broken executable, Mail, OLE2, PDF, SWF, HTML, HWP3, XMLDOCS
  • Linux 시스템에서의 주요 바이러스 예방 도구
    ClamAV는 Linux 시스템에서 바이러스와 악성코드를 예방하는 데 유용한 기본적인 바이러스 프로그램으로 사용됩니다.

🔹 ClamAV 로그 분석 🔹

  • 로그 파일 위치:
    ClamAV의 로그 파일은 /var/log/clamav/ 디렉터리에 저장됩니다.
    이 로그 파일을 통해 바이러스 탐지 결과와 위협에 대한 정보를 확인할 수 있습니다.
  • 로그 분석:
    로그 파일을 정기적으로 확인하여 바이러스나 악성코드가 감지되었는지 파악하고, 필요시 악성코드를 제거하거나 추가적인 보안 조치를 취할 수 있습니다.

🔹 ClamAV 사용 예시 🔹

#클램AV 업데이트
sudo freshclam
#디렉토리 검사
clamscan -r /path/to/directory
#특정 파일 검사
clamscan /path/to/file

네트워크 공격 형태와 방어책 정리

 

공격 형태 설명 방어책
Eavesdropping (도청) 해커가 네트워크를 통해 타겟의 통신을 도청하거나, 허락 없이 시스템에 접근하여 통신을 가로채는 공격 기법입니다. 강력한 암호화(SSL/TLS 등)를 사용하여 통신을 보호해야 합니다.
Data Modification (데이터 변조) 해커가 타겟 네트워크에 침투해 오가는 데이터를 변조한 뒤 재전송하여 데이터를 왜곡하는 공격입니다. 프록시 관리와 SSL 인증을 통해 데이터를 암호화하여 보호합니다.
Sniffing (취약점 탐색) 해커가 암호화되지 않은 데이터를 외부에서 탈취하여 네트워크를 들여다보는 공격입니다. ping, ICMP 프로토콜을 규제하여 불필요한 패킷을 차단합니다.
Snooping (염탐) 네트워크에서 중요 정보를 몰래 훔치는 공격입니다. DHCP 서버에서 신뢰할 수 없는 포트에서 오는 정보를 차단합니다.
Spoofing (IP/MAC 변조) 해커가 자신의 IP/MAC 주소를 타겟 네트워크의 주소로 변경하여 신뢰할 수 있는 호스트처럼 가장하고 정보를 탈취하는 공격입니다. 호스트의 IP/MAC 주소를 정적으로 설정하여 변조를 방지합니다.
Password Crack (패스워드 크랙) 해커가 사용자명과 패스워드를 크랙하여 네트워크에 로그인하는 공격 기법입니다. 유효한 사용자 리스트를 관리하고, 관리자 권한 상승을 제한합니다.
DoS (Denial of Service) 타겟 서버의 서비스를 불능 상태로 만드는 공격입니다. 주로 대량의 트래픽을 보내 서버를 마비시키는 방식으로 이루어집니다. 포트 필터링, 루트킷 체크 도구 등을 사용해 서비스를 보호합니다.
MitM (Man in the Middle) 클라이언트와 서버 간의 통신을 해커가 가로채서 중간에서 정보를 수정하거나 탈취하는 공격입니다. Arp Spoofing이나 Session Hijacking 방지 대책을 사용하여 세션을 보호합니다.
Compromised-key (취약한 키) SSL 등의 보안 키가 취약하여 해커가 쉽게 키를 해독하고 보안 네트워크에 접근하는 공격입니다. 강력한 키 생성 및 SHA512, RSA 알고리즘을 사용하여 보안을 강화합니다.
Applications (응용 프로그램) 해커가 타겟 시스템의 응용 프로그램 취약점이나 잘못된 설정을 이용해 침투하는 기법입니다. 응용 프로그램과 운영체제의 패치 및 업데이트를 관리하고, 불필요한 프로그램 설치를 제한합니다.
OS (운영체제) 해커가 운영체제의 취약점을 이용해 시스템에 침투하는 공격입니다. 운영체제의 최신 패치 및 업데이트를 적용합니다.
ATP (Advanced Technology Persistence) 해커가 타겟 시스템에 악성코드를 심어두고, 지속적인 공격을 수행하여 네트워크를 완전히 장악하려는 기법입니다. 패치 및 망 분리, 이메일 첨부 파일 열지 않기 등의 예방 조치를 취합니다.
Phishing (퓌싱) 신뢰할 수 있는 사람이나 기관처럼 가장하여 사용자의 비밀번호나 신용카드 정보를 탈취하는 공격입니다. 이메일 및 첨부파일의 확장자 필터링을 설정하여 악성 파일을 차단합니다.
Pharming (퐈밍) DNS나 hosts 파일을 변경하여 사용자가 악성 사이트에 접속하게 만드는 공격입니다. 시스템에서 파일 변동을 추적하고, 최신 패치 및 자바 업데이트를 수행합니다.
Ransomware (랜섬웨어) 해커가 시스템 파일을 암호화하여 사용자가 접근할 수 없도록 하고, 금전을 요구하는 공격입니다. 강력한 AV/Anti-malware 프로그램을 사용하고, 웹 파일을 별도의 서버에 저장하여 보호합니다.
Watering Hole (워터링 홀) 타겟 웹사이트에 악성코드를 심어 타겟이 접속한 사용자만 감염시키는 공격입니다. 알 수 없는 파일을 열지 않도록 주의하고, 웹사이트에 대한 보안 검토를 강화합니다.
Virus Wall (바이러스 월) 외부 네트워크에서 내부 네트워크로 유입되는 바이러스를 차단하는 방어 기법입니다. 내부 네트워크에 유입되는 데이터를 검사하고, 감염된 파일을 격리 및 차단하여 바이러스 확산을 방지합니다.

일반적인 보안 도구들

  1. Nmap
    •   설명: Nmap은 네트워크 탐색 및 보안 감사를 위한 도구로, 타겟 서버에서 운영체제, 버전, 실행 중인 서비스, 오    픈 포트 등을 스캔하여 수집할 수 있습니다. 이 도구는 TCP 프로토콜을 활용하여 연결을 수립하고, SYN                Flooding, Stealth scan 등과 같은 침투 기법을 사용할 수 있습니다. 특히 Nmap Script Engine(NSE)을 통해 더욱    정밀한 스캔을 수행할 수 있습니다.
    • 주요 옵션:
      •   sS: SYN 스캔 (세션 수립 없이)
      •   sT: TCP 스캔
      •   sU: UDP 스캔
      •   sN: 플래그 OFF (null scan)
      •   sX: 모든 플래그 ON (x-mass scan)
      •   sF: FIN 플래그만 설정
      •   sV: 열린 포트와 버전 확인
      •   O: OS 정보 확인
      •   A: OS와 OS 버전 확인
      •   v: 상세 결과 보기
    • 사용 예: nmap -v -sT -O 192.168.100.123
      •   결과 표시: 포트 상태는 open(열림), filtered(방화벽에 의해 차단), closed(닫힘), unfiltered(알 수 없음) 등으로 표시됨.
    •   방어책: 자신의 서버를 스캔하여 너무 많은 정보가 노출되지 않도록 포트 및 서비스의 보안을 강화해야 함.
  2. Netcat (NC)
    •   설명: Netcat은 "Swiss Army Knife"로 불리는 강력한 네트워크 도구로, 포트 스캔, 파일 송수신, 백도어 열기 등 다양한 기능을 지원합니다. 특히, 백도어로 사용될 때 유용하지만 정상적인 네트워크 관리에도 활용될 수 있습니다.
    • 기능:
      •   포트 스캔
      •   파일 송수신
      •   원격 쉘 접속 등
  3. Tcpdump
    •   설명: Tcpdump는 Wireshark와 유사한 패킷 분석 도구로, 네트워크 인터페이스에서 수신된 데이터를 텍스트 형태로 콘솔에 출력합니다. 이를 통해 네트워크 상의 평문 데이터를 볼 수 있으므로, 사용자명과 비밀번호 등의 크레덴셜 정보가 암호화되지 않은 상태로 전송될 경우 이를 바로 확인할 수 있습니다.
    •   활용: 네트워크 트래픽 모니터링 및 분석
  4. Tripwire
    •   설명: Tripwire는 파일의 변조 여부를 탐지하는 도구입니다. 시스템에 설치된 파일들의 해시 값을 미리 저장하        고,   나중에 파일의 해시 값과 비교하여 변조된 파일을 찾아냅니다. 해커가 시스템에 침입하여 파일을 변조했을    때 이    를 검출하는 데 유용합니다.
    •   원리: 파일의 해시 값 및 속성을 데이터베이스에 저장하고, 현재 파일 상태와 비교하여 변조 여부를 확인.
    •   주의점: 실시간으로 변조를 탐지하지 않으므로 시스템 설치 후 바로 Tripwire를 실행하여 설정하는 것이 좋습니    다.
반응형

'Linux 보안' 카테고리의 다른 글

리눅스 보안 5일차 핵심요약본  (0) 2025.03.12
리눅스 보안 5  (0) 2025.03.12
리눅스 보안 4일차 핵심요약본  (0) 2025.03.11
리눅스 보안 4  (0) 2025.03.11
리눅스 보안 2  (0) 2025.03.07