A host-based intrusion detection system (HIDS) is an intrusion detection system that is capable of monitoring and analyzing the internals of a computing system as well as the network packets on its network interfaces, similar to the way a network-based intrusion detection system (NIDS) operates. This was the first type of intrusion detection software to have been designed, with the original target system being the mainframe computer where outside interaction was infrequent.

Overview 

A host-based IDS is capable of monitoring all or parts of the dynamic behavior and the state of a computer system, based on how it is configured. Besides such activities as dynamically inspecting network packets targeted at this specific host (optional component with most software solutions commercially available), a HIDS might detect which program accesses what resources and discover that, for example, a word-processor has suddenly and inexplicably started modifying the system password database. Similarly a HIDS might look at the state of a system, its stored information, whether in RAM, in the file system, log files or elsewhere; and check that the contents of these appear as expected, e.g. have not been changed by intruders.

One can think of a HIDS as an agent that monitors whether anything or anyone, whether internal or external, has circumvented the system's security policy.

Monitoring dynamic behavior 
Many computer users have encountered tools that monitor dynamic system behavior in the form of anti-virus (AV) packages. While AV programs often also monitor system state, they do spend a lot of their time looking at who is doing what inside a computer – and whether a given program should or should not have access to particular system resources. The lines become blurred here, as many of the tools overlap in functionality.

Some intrusion prevention systems protect against buffer overflow attacks on system memory and can enforce security policy.

Monitoring state 
The principle operation of a HIDS depends on the fact that successful intruders (hackers) will generally leave a trace of their activities. In fact, such intruders often want to own the computer they have attacked, and will establish their "ownership" by installing software that will grant the intruders future access to carry out whatever activity (keystroke logging, identity theft, spamming, botnet activity, spyware-usage etc.) they envisage.

In theory, a computer user has the ability to detect any such modifications, and the HIDS attempts to do just that and reports its findings.

Ideally a HIDS works in conjunction with a NIDS, such that a HIDS finds anything that slips past the NIDS. Commercially available software solutions often do correlate the findings from NIDS and HIDS in order to find out about whether a network intruder has been successful or not at the targeted host.

Most successful intruders, on entering a target machine, immediately apply best-practice security techniques to secure the system which they have infiltrated, leaving only their own backdoor open, so that other intruders can not take over their computers.

Technique 
In general a HIDS uses a database (object-database) of system objects it should monitor – usually (but not necessarily) file system objects. A HIDS could also check that appropriate regions of memory have not been modified – for example, the system call table for Linux, and various vtable structures in Microsoft Windows.

For each object in question a HIDS will usually remember its attributes (permissions, size, modifications dates) and create a checksum of some kind (an MD5, SHA1 hash or similar) for the contents, if any. This information gets stored in a secure database for later comparison (checksum database).

An alternate method to HIDS would be to provide NIDS type functionality at the network interface (NIC) level of an end-point (either server, workstation or other end device). Providing HIDS at the network layer has the advantage of providing more detailed logging of the source (IP address) of the attack and attack details, such as packet data, neither of which a dynamic behavioral monitoring approach could see.

Operation 
At installation time – and whenever any of the monitored objects change legitimately – a HIDS must initialize its checksum-database by scanning the relevant objects. Persons in charge of computer security need to control this process tightly in order to prevent intruders making un-authorized changes to the database(s). Such initialization thus generally takes a long time and involves cryptographically locking each monitored object and the checksum databases or worse. Because of this, manufacturers of HIDS usually construct the object-database in such a way that makes frequent updates to the checksum database unnecessary.

Computer systems generally have many dynamic (frequently changing) objects which intruders want to modify – and which a HIDS thus should monitor – but their dynamic nature makes them unsuitable for the checksum technique. To overcome this problem, HIDS employ various other detection techniques: monitoring changing file-attributes, log-files that decreased in size since last checked, and numerous other means to detect unusual events.

Once a system administrator has constructed a suitable object-database – ideally with help and advice from the HIDS installation tools – and initialized the checksum-database, the HIDS has all it requires to scan the monitored objects regularly and to report on anything that may appear to have gone wrong. Reports can take the form of logs, e-mails or similar.

Protecting the HIDS 
A HIDS will usually go to great lengths to prevent the object-database, checksum-database and its reports from any form of tampering. After all, if intruders succeed in modifying any of the objects the HIDS monitors, nothing can stop such intruders from modifying the HIDS itself – unless security administrators take appropriate precautions. Many worms and viruses will try to disable anti-virus tools, for example.

Apart from crypto-techniques, HIDS might allow administrators to store the databases on a CD-ROM or on other read-only memory devices (another factor in favor of infrequent updates...) or storing them in some off-system memory. Similarly, a HIDS will often send its logs off-system immediately – typically using VPN channels to some central management system.

One could argue that the trusted platform module comprises a type of HIDS. Although its scope differs in many ways from that of a HIDS, fundamentally it provides a means to identify whether anything/anyone has tampered with a portion of a computer. Architecturally this provides the ultimate (at least ) host-based intrusion detection, as depends on hardware external to the CPU itself, thus making it that much harder for an intruder to corrupt its object and checksum databases.

Reception
InfoWorld states that host-based intrusion-detection system software is a useful way for network managers to find malware, and suggest they run it on every server, not just critical servers.

See also
 Host-based intrusion detection system comparison
 IBM Internet Security Systems – commercial HIDS / NIDS
 Open Source Tripwire – open source HIDS
 OSSEC – a multi-platform open source HIDS
 Trusted Computing Group

References

External links
 Deep Security – a commercial multi-platform HIDS
 Lacework HIDS – a commercial HIDS for cloud deployments

Intrusion detection systems
호스트 기반 침입 탐지 시스템()은 침입 탐지 시스템의 특별한 종류로서, 컴퓨터 시스템의 내부를 감시하고 분석하는 데 더 중점을 둔다. 네트워크 침입 탐지 시스템(NIDS)과 같은 외부 인터페이스에 중점을 두는 시스템과는 구별된다.

개요 
HIDS는 컴퓨터 시스템의 동작이나 상태를 모두 감시하거나 부분적으로 감시한다. NIDS가 네트워크 패킷을 검사하는 것처럼, HIDS는 프로그램이 접근하는 리소스를 탐지하여 워드 프로세서 같은 프로그램이 시스템 비밀번호 데이터베이스를 수정할 수 없게 하는 방식으로 동작할 수 있다. 이와 비슷하게 HIDS는 시스템의 상태를 확인하여 램이나 파일 시스템 등에 존재하는 시스템의 상태 정보에 기대했던 내용이 있는지 여부를 검사하는 방식으로 동작할 수 있다.

HIDS를 운영 체제의 보안 정책을 우회하는 무언가를 감시하는 에이전트라고 생각할 수 있다.

동작 감시 
많은 컴퓨터 사용자들이 바이러스 검사 소프트웨어 패키지의 형태로 시스템의 동작을 감시하는 도구들과 마주하고 있다. 이러한 검사 프로그램들은 시스템의 상태를 감시하기는 하지만, 대부분의 실행시간을 누가 어떤 일을 하고 있는지와 프로그램이 리소스에 접근할 수 있는지 없는지 여부를 조사하는 데 사용한다. 기능 면에서 많은 도구들이 서로 중첩되기 때문에, 여기서 이 부분은 명확하지 않다.

상태 감시 
성공적인 침입자(해커)들은 일반적으로 그들이 한 행동에 대한 흔적을 남긴다. (사실 그러한 침입자들은 종종 자신이 공격한 시스템을 소유하고 싶어하며, 시스템에 다시 접근할 수 있게 하는 소프트웨어를 설치한다.) HIDS는 이 원리를 이용한다.

이론적으로 컴퓨터 사용자는 그러한 어떠한 변경사항도 탐지가 가능하며, HIDS는 단지 이 작업을 수행하여 결과를 보고하는 것이다.

이상적으로 HIDS는 NIDS와 함께 동작하며, NIDS로부터 통과된 것들에 대해 HIDS가 찾게 된다.

아이러니하게도 컴퓨터에 성공적으로 침투한 침입자들은 그들이 침입한 시스템을 보호하기 위해 최고의 보안 기술을 바로 시스템에 적용한다. 오직 그들이 설치한 백도어만 열려있게 된다. 그래서 다른 침입자들이 컴퓨터에 침입할 수 없도록 한다.(크래커들은 경쟁적인 집단이다.) 다시 또 누군가는 그러한 변경 사항을 발견하고 학습할 수 있다.

기법 
일반적으로 HIDS는 감시해야 하는 시스템 오브젝트들에 대한 데이터베이스(오브젝트 데이터베이스)를 사용한다. 보통은 (꼭 그런것은 아니지만) 파일 시스템 오브젝트들에 대한 데이터베이스가 된다. HIDS는 또한 메모리의 적절한 영역이 변경되지 않았는지를 검사할 수 있다. 예를 들어 리눅스에서의 시스템 콜 테이블이나, 윈도우에서의 다양한 vtable 구조체를 검사할 수 있다.

HIDS는 보통 감시해야 하는 오브젝트들의 속성(권한, 크기, 변경된 날짜)을 기억한다. 만약 오브젝트들에 내용이 있다면 아마도 특정 형식(MD5 해시 또는 기타 유사한 해시)의 체크섬을 만들 것이다. 이 정보는 나중에 비교되기 위해 데이터베이스(체크섬 데이터베이스)에 저장된다. MD5 해시가 일치한다고 해서 해당 파일이 침입자 또는 권한 없는 사용자에 의해 변경되지 않았다는 것을 완전하게 보장하지 않는다는 사실에 주의해야 한다. 2004년도 연구에서 그러한 상황이 발생할 확률이 일반적으로 희망했던 수치를 초과할 수 있다는 주장이 제기되었다. (그러나 여전히 논쟁중에 있다.)

실행 형태 
프로그램이 설치될 때 또는 감시되는 오브젝트들이 정당하게 변경될 때마다 HIDS는 관련된 오브젝트들을 스캐닝하여 체크섬 데이터베이스를 반드시 초기화해야 한다. 컴퓨터 보안 담당자들은 이 과정을 엄격하게 통제해야 하는데, 이는 침입자들에 의해 해당 데이터베이스가 무단으로 수정되는 상황을 예방한다. 그러한 초기화는 따라서 매우 많은 시간이 걸리며 암호화의 방법으로 각각의 감시되는 오브젝트와 체크섬 데이터베이스 또는 그 이상의 것을 잠그는 작업이 포함된다. 이런 이유로, HIDS 제작사들은 보통 체크섬 데이터베이스가 자주 업데이트되지 않도록 오브젝트 데이터베이스를 구축한다.

컴퓨터 시스템은 일반적으로 수시로 변경되는 많은 오브젝트들을 갖고 있다. 그러한 오브젝트를 침입자가 조작하려고 시도할 수 있으며, 따라서 HIDS는 그러한 오브젝트를 감시해야 한다. 그러나 수시로 변경되는 오브젝트에 체크섬을 사용하는 것은 적합하지 않다. 이 문제를 극복하기 위해 HIDS는 수정되는 파일의 속성을 감시하거나, 마지막으로 확인하였을 때보다 크기가 줄어든 로그 파일을 검사하는 등의 다양한 탐지 기술을 도입하여 사용하고 있다.

시스템 관리자가 적합한 오브젝트 데이터베이스를 구축하고, 체크섬 데이터베이스를 초기화하였다면, HIDS는 감시되는 오브젝트들을 정기적으로 스캔하여 문제있는 것으로 보이는 모든 사항을 보고하게 된다. 보고는 로그 파일이나 이메일, 기타 유사한 형식이 될 수 있다.

HIDS 보호하기 
HIDS는 보통 오브젝트 데이터베이스와 체크섬 데이터베이스 그리고 HIDS의 보고 내용이 무단으로 변경되지 않도록 예방하기 위해 가능한 모든 수단을 사용한다. 그러나 만약 침입자가 HIDS에 의해 감시되는 오브젝트를 조작하는 데 성공했다면, 그리고 보안 관리자가 적절한 예방 조치를 취하지 않았다면, 침입자가 HIDS 자체를 조작하는 것을 막을 수 없게 된다. 예를 들어 많은 웜과 컴퓨터 바이러스들은 안티 바이러스 툴에 대한 무력화를 시도한다. 유감스럽게도 그러한 많은 시도들이 성공된다.

암호화 기술과는 별개로, HIDS는 관리자가 데이터베이스를 CD-ROM 또는 기타 읽기 전용의 장치들(데이터베이스를 자주 업데이트할 수 없도록 하는 또 다른 요인)에 저장하거나 시스템 외부의 메모리에 저장하도록 허용하기도 한다. 이와 비슷한 형태로 HIDS는 종종 로그를 시스템 외부로 즉시 보내기도 하는데, 이 작업은 "Transmit"으로만 연결된 시리얼 포트같은 단방향 통신 채널을 통해 이루어진다.

누군가는 신뢰 플랫폼 모듈(trusted platform module, TPM)이 HIDS의 한 종류를 포함한다고 주장할 수 있다. 비록 TPM의 범위가 HIDS의 그것과 많은 면에서 다르긴 하지만, 기본적으로 TPM은 누가 또는 무엇이 컴퓨터의 일부를 무단으로 수정했는지 여부를 식별할 수 있는 수단을 제공한다. 설계측면에서 TPM은 CPU 이외의 하드웨어에 의존하여, (적어도 지금 이 시점까지는) 궁극적인 호스트 기반 침입 탐지를 제공한다. 따라서 TPM은 침입자가 오브젝트 데이터베이스와 체크섬 데이터베이스를 더욱 더 조작하기 어렵게 만든다.

같이 보기 
 침입 탐지 시스템
 네트워크 침입 탐지 시스템

외부 링크 
  OSSEC - 오픈 소스 HIDS
  md5deep - 오픈 소스 HIDS
  Aide - 오픈 소스 HIDS
  Samhain - 오픈 소스 HIDS
  Snort - 오픈 소스 NIDS
  OpenHIDS - Windows NT/2000/XP/2003 시스템용 오픈 소스 HIDS
  serverM - Linux/Mac OS X 용 오픈 소스 HIDS

컴퓨터 보안