237. HIDS/HIPS (호스트 기반 침입 탐지/방지 시스템)
⚠️ 이 문서는 해커가 암호화된 터널(HTTPS)로 꽁꽁 싸매고 들어와서 길목에 서 있는 네트워크 방어 장비(NIDS)가 냄새조차 맡지 못하고 속수무책으로 당할 때, **그 패킷이 최종 목적지인 '서버(Host) 기계 내부'에 도달해 껍데기를 벗고 진짜 모습을 드러내는 순간을 낚아채기 위해, 서버의 운영체제(OS) 안에 백신처럼 소프트웨어 형태로 숨어 들어가 메모리와 시스템 파일의 변조를 감시하는 최후의 독고다이 방어선인 'HIDS/HIPS (호스트 기반 IDS/IPS)'**를 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 앞서 배운 일반적인 NIDS(네트워크 IDS)가 고속도로를 감시하는 드론이라면, HIDS는 내 집 현관문 앞과 안방 컴퓨터 바탕화면을 노려보는 '사설 경호원 프로그램'이다. 서버 1대당 1개씩 프로그램(Agent)을 무조건 직접 깔아줘야 한다.
- 가치: 밖에서는 절대 알 수 없는 내부자 위협, 즉 서버 관리자가 몰래 윈도우 시스템 파일(
System32)이나 리눅스 패스워드 파일(/etc/shadow)을 수정하는 짓을 0.1초 만에 캐치해 낸다. 또한 NIDS가 못 푸는 100% 암호화 트래픽도, 서버가 그것을 복호화(해독)해서 메모리에 올리는 찰나에 멱살을 잡아낸다.- 기술 체계 (치명적 한계): 서버 기계 1,000대에 에이전트를 1,000개 일일이 깔아야 하는 극한의 노가다(관리 비용)가 들며, 이 방어 프로그램 자체가 해커(루트킷)에게 해킹당해서 모가지가 날아갈 수 있고, 탐지 로직이 돌 때마다 서버의 소중한 CPU를 뺏어 먹어 서비스가 느려지는 태생적 약점을 지닌다.
Ⅰ. NIDS(네트워크)의 치명적 한계와 HIDS의 등장
터널 안에서 일어나는 일은, 터널 밖에선 절대 알 수 없다.
- 암호화 트래픽(HTTPS / VPN)의 완벽한 스텔스:
- 해커가 내부 서버를 털기 위해 악성 코드를 날린다. 하지만 영악하게도 100% 빡센 HTTPS 암호화나 VPN 터널을 씌워서 날려 보냈다.
- 길목(스위치)에 서 있는 NIDS 장비가 패킷을 낚아채서 배를 갈라보지만, 전부 다 깨진 외계어(암호화)뿐이다.
- NIDS는 속살을 못 봤으므로 "이상 없네~ 통과!" 라며 문을 열어준다 (검문 붕괴).
- HIDS의 잠복과 해독(Decryption) 순간의 타격:
- 패킷이 목적지인
내부 DB 서버(Host)에 도착했다. - 서버는 이 패킷을 처리하기 위해 암호를 푼다(복호화). 속살인 악성 코드가 메모리에 쌩얼로 툭 튀어나왔다!
- 그 순간, DB 서버 리눅스 OS 안에 잠복해 있던 **HIDS(Host IDS, 에이전트 프로그램)**가 "잡았다 요놈!" 하고 메모리에서 악성 코드를 낚아챈다. 네트워크 장비는 죽어도 못 잡는 스텔스 공격을 HIDS만이 최후의 보루로 막아내는 원리다.
- 패킷이 목적지인
📢 섹션 요약 비유: NIDS는 아파트 단지 정문의 경비 아저씨입니다. 도둑이 철가방(암호화된 상자) 속에 권총을 숨겨 배달원인 척 들어오면, 경비 아저씨는 엑스레이 기계가 없어서 가방 속을 못 보니 그냥 들여보냅니다. HIDS는 안방에 설치해 둔 몰래카메라(에이전트)입니다. 도둑이 안방(서버)에 들어와서 안심하고 철가방을 열어 권총을 꺼내는 그 찰나의 순간을 포착하고 즉시 경찰(알람)을 부르는 최후의 밀실 방어 시스템입니다.
Ⅱ. HIDS/HIPS의 핵심 무기: OS 심연의 모니터링
밖에서 쏘는 대포가 아니라, 내 몸속에서 자라나는 암세포를 찾는다.
- 무결성 검사 (File Integrity Monitoring, FIM) $\star$:
- HIDS의 존재 이유 1순위다. HIDS는 설치되자마자 윈도우의 레지스트리나 리눅스의
/etc/passwd, 각종 시스템 핵심 파일들의 지문(Hash 값)을 싹 다 떠서 보관해 둔다. - 새벽에 내부 직원이 몰래 서버에 들어와 해킹 루트킷을 깔거나 핵심 시스템 파일을 변조(수정)했다!
- HIDS가 1초 뒤에 지문(Hash)을 대조해 보고 "어라? 파일 모양이 바뀌었네? 백도어(Backdoor) 깔렸음!" 하고 즉시 알람을 울려 사내 반역자를 색출해 낸다.
- HIDS의 존재 이유 1순위다. HIDS는 설치되자마자 윈도우의 레지스트리나 리눅스의
- 시스템 콜 및 로그 (System Call/Log) 감시:
- 해커가 방화벽을 우회해서 들어와도, 결국 서버에서 무언가 나쁜 짓을 하려면 리눅스 OS의 심장(Kernel)에게 "야, 파일 삭제해 줘(시스템 콜)"라고 부탁을 해야 한다.
- HIDS는 이 OS 커널 레벨에서 오고 가는 귓속말(시스템 콜)과 윈도우 이벤트 로그(Event Viewer)를 초 단위로 감시하며, "평소엔 안 쓰던 의심스러운 명령어(권한 상승 상승 등)가 쳐졌음!"을 족집게처럼 잡아낸다.
- HIPS (능동적 방어):
- 만약 이 프로그램이 HIDS(탐지만)가 아니라 방어가 추가된 HIPS 라면?
- 해커의 명령어가 실행되려는 그 0.001초의 찰나에, HIPS가 OS에 멱살을 잡고 프로세스를 강제로 죽여버리거나(Kill), 파일 수정을 물리적으로 막아버리는(Block) 적극적인 무장 경호원 역할을 해낸다.
📢 섹션 요약 비유: 아무리 정문을 철통같이 지켜도(네트워크 보안), 이미 입사해 있는 스파이(내부자 위협)나 내 몸속에서 자라나는 바이러스는 밖에서 못 찾습니다. HIDS 무결성 검사는 매일 아침 은행 금고(시스템 파일)에 발라놓은 눈에 안 보이는 '특수 형광 가루'입니다. 누가 밤에 몰래 와서 금고 손잡이를 한 번이라도 만지고 가면(파일 변조), 다음 날 아침 HIDS가 자외선을 비춰보고 "지문 묻었다! 해킹이야!"라고 완벽한 내부 감찰을 해내는 첩보전입니다.
Ⅲ. HIDS의 3대 치명적 한계 (오버헤드와 자폭)
가장 깊숙한 곳을 지키는 대신, 가장 피곤한 대가를 치른다.
- CPU/RAM 오버헤드 (팀킬의 위험):
- HIDS 프로그램은 서버 안에서 살아 움직인다. 실시간으로 로그를 뒤지고 바이러스를 검사하느라 서버의 소중한 CPU와 램 자원을 엄청나게 뺏어 먹는다.
- 만약 메인 오라클(Oracle) DB 서버에 깐깐한 HIDS를 깔아두면, DB가 손님들 쿼리를 처리해야 하는데 HIDS가 CPU를 30%나 갉아먹어서 사내 시스템 전체가 끔찍하게 버벅대는 대재앙이 터질 수 있다. (현업 부서가 서버에 보안 프로그램 까는 걸 제일 싫어하는 이유다.)
- 에이전트 관리의 지옥 (Deployment Hell):
- NIDS 장비는 메인 랜선에 1대만 떡 하니 꽂아놓으면 회사 내 PC 1만 대의 트래픽을 한 방에 감시한다 (가성비 최고).
- 하지만 HIDS는? 서버 기계 1,000대마다 일일이 들어가서 에이전트 소프트웨어 1,000개를 수동으로 설치해 줘야 한다. 윈도우용, 리눅스용 버전도 다르고, OS가 패치되면 에이전트가 먹통이 돼서 1,000대를 또 업데이트해야 하는 끔찍한 막노동(Ops)이 발생한다.
- 해커에게 가장 먼저 암살당하는 타겟 (자폭 위험):
- 천재 해커가 관리자 권한(Root)을 탈취해 서버에 들어왔다.
- 해커가 가장 먼저 하는 짓은? 서버에서 돌고 있는 HIDS 프로그램(경비원) 프로세스를 찾아내 강제 종료(
kill -9) 시켜버리는 것이다. - 감시자가 먼저 살해당했으므로, 그 이후에 해커가 서버 안에서 벌이는 모든 짓은 아무런 로그도 남지 않는 완벽한 암흑 상태(Blind)가 되어버린다.
📢 섹션 요약 비유: HIDS는 대통령(서버) 바로 옆에 24시간 붙어 다니는 전담 개인 경호원입니다. 보안은 확실하지만 3가지 짜증이 납니다. 첫째, 밥 먹을 때도 옆에 서 있어서 회장님이 스트레스를 받고 체합니다(CPU 오버헤드). 둘째, 장관 1,000명에게 경호원을 1,000명 일일이 다 붙여줘야 해서 월급이 거덜 납니다(설치 및 관리 지옥). 셋째, 킬러(해커)가 쳐들어왔을 때 경호원의 머리를 가장 먼저 쏴버리면, 회장님은 아무 저항도 못 하고 꼼짝없이 암살당합니다(탐지 프로그램 자폭 및 우회 위험).