본문 바로가기

IT/WINDOWS SERVICES

Application Layer Gateway Service

 

 

ALG service in Microsoft Windows

The Application Layer Gateway service in Microsoft Windows provides support for third-party plugins that allow network protocols to pass through the Windows Firewall and work behind it and Internet Connection Sharing. ALG plugins can open ports and change data that is embedded in packets, such as ports and IP addresses. Windows Server 2003 also includes an ALG FTP plugin. The ALG FTP plugin is designed to support active FTP sessions through the NAT engine in Windows. To do this, the ALG FTP plugin redirects all traffic that passes through the NAT and that is destined for port 21 (FTP control port) to a private listening port in the 3000–5000 range on the Microsoft loopback adapter. The ALG FTP plugin then monitors/updates traffic on the FTP control channel so that the FTP plugin can plumb port mappings through the NAT for the FTP data channels.

 

윈도우 내에서 alg 서비스는 타사 플러그인을 지원하여 네트워크 프로토콜이 윈도우 방화벽을 통화하여 백그라운드에서 기능할 수 있도록 도와주는 역할을 한다. 그리고 인터넷 연결을 공유한다. alg 플러그인은 포트를 열고 패킷에 심어진 데이터를 변환할수 있다. 포트와 아이피 주소와 같은. 윈도우 서버 2003에서는 또한 alg ftp 플러그인을 포함하고 있다. alg 플러그인은 윈도우에서 nat 엔진을 통하여 ftp 세션이 활성화 되도록 지원한다. 이것을 위해 alg ftp 플러그인은 nat를 통하여 지나가는 모든 트래픽을 리다이렉션을 한다. 그리고 이것은 포트 21에서 3000에서 5000 사이의 ms 루프백 어댑터의 개인 수신 포트로 향하도록 되어있다. 이 alg ftp 플러그인은 ftp 컨트롤 채널의 트래픽을 감시하거나 업데이트한다. 이것은 ftp플러그인이 nat를 통해 ftp 데이터 채널들을 위해 포트들이 맵핑되어 지나갈수 있도록 하기 위함이다.  

 

 

Functions

An ALG may offer the following functions:

 

아마 ALG는 다음의 기능을 제공할 것이다. 

 

  • allowing client applications to use dynamic ephemeral TCP/ UDP ports to communicate with the known ports used by the server applications, even though a firewall configuration may allow only a limited number of known ports. In the absence of an ALG, either the ports would get blocked or the network administrator would need to explicitly open up a large number of ports in the firewall — rendering the network vulnerable to attacks on those ports.

동적임시 TCP/UDP 포트를 사용하는 클라이언트 어플리케이션들이 서버 어플리케이션들에 의해 알려진 포트들과 통신하는 것을 허용한다. 심지어 방화벽 설정이 제한된 알려진 포트들만을 허용할지라도 말이다.  ALG가 없다면 포트들은 아마도 막히거나 네트워크 관리자는 방화벽에서 명시적으로 수많은 포트들을 열어야 할 것이다. 이 포트들은 네트워크 공격에 취약하다. 

 

  • converting the network layer address information found inside an application payload between the addresses acceptable by the hosts on either side of the firewall/NAT. This aspect introduces the term 'gateway' for an ALG.

방화벽과 NAT 각 양쪽에의 호스트들에 의해 수용될 수 있는 주소들 사이에서 어플리케이션 페이로드 안에 있는 네트워크층의 주소정보를 변환한다. 이런 면에서 ALG를 위한 게이트웨이라는 용어가 있다. 

 

  • recognizing application-specific commands and offering granular security controls over them

어플리케이션의 특정 명령어를 인식하고 그것들에 관한 광범위한 보안 컨트롤을 제공한다. 

 

  • synchronizing between multiple streams/sessions of data between two hosts exchanging data. For example, an FTP application may use separate connections for passing control commands and for exchanging data between the client and a remote server. During large file transfers, the control connection may remain idle. An ALG can prevent the control connection getting timed out by network devices before the lengthy file transfer completes.[3] 

데이터를 교환하는 두 호스트 사이에서 다양한 데이터의 세션과 스트림을 동기화 한다. 예를 들어 FTP 어플리케이션은 분리된 연결을 사용하는데, 이 연결은 조작 명령들을 통과시키고 클라이언트와 멀리 떨어진 서버 사이에 데이터 교환을 위한 것이다. 큰 파일들이 전송되는 동안 컨트롤 연결은 유휴상태로 남으며, ALG는 컨트롤 연결이 긴 파일연결이 완료되기 전에 네트워크 장치들에 의해 시간초과로 단절되는 것을 막는다. 

 

 

 

 

Deep packet inspection of all the packets handled by ALGs over a given network makes this functionality possible. An ALG understands the protocol used by the specific applications that it supports.

 

네트워크에서 ALG에 의해 다루어지는 모든 패킷들의 심층검사는 이것을 기능적으로 가능하게 만든다. ALG는 이것을 지원하는 특정 어플리케이션에 의해 사용되는 프로토콜을 이해한다. 

 

 

For instance, for Session Initiation Protocol (SIP) Back-to-Back User agent (B2BUA), an ALG can allow firewall traversal with SIP. If the firewall has its SIP traffic terminated on an ALG then the responsibility for permitting SIP sessions passes to the ALG instead of the firewall. An ALG can solve another major SIP headache: NAT traversal. Basically a NAT with a built-in ALG can rewrite information within the SIP messages and can hold address bindings until the session terminates. A SIP ALG will also handle SDP in the body of SIP messages (which is used ubiquitously in VoIP to set up media endpoints), since SDP also contains literal IP addresses and ports that must be translated.

It is common for SIP ALG on some equipment to interfere with other technologies that try to solve the same problem, and various providers recommend turning it off.[4][5][6]

An ALG is very similar to a proxy server, as it sits between the client and real server, facilitating the exchange. There seems to be an industry convention that an ALG does its job without the application being configured to use it, by intercepting the messages. A proxy, on the other hand, usually needs to be configured in the client application. The client is then explicitly aware of the proxy and connects to it, rather than the real server.

 

예를들어 SIP, B2BUA, ALG가 SIP와 방화벽 횡단 사이를 허용한다.  만약 방화벽이 이것의 SIP 트래픽이 ALG에서 끝나는 것 

 

 

출처: 위키 

 

 

 

 

 

출처file:///C:/Users/SKTelecom/Downloads/%EC%BF%A1%ED%97%88%EB%B8%8C%20%EC%82%AC%EC%9A%A9%EC%84%A4%EB%AA%85%EC%84%9C%20(%EA%B3%A0%EA%B8%89%EC%84%A4%EC%A0%95%EA%B4%80%EB%A0%A8).pdf

 

 

 

이것 외에도 바이러스가 alg.exe로 프로세스명을 변경하여 시스템 내에 침투하는 사례도 있다고 한다. 

그만큼 기능적으로 중요하며 많은 권한을 가지고 있는 서비스 같다. 

'IT > WINDOWS SERVICES' 카테고리의 다른 글

Brokerinfrastructure  (0) 2020.03.25
wuauserv(WIndows Update)  (0) 2020.03.24
Application Management  (0) 2020.03.23
App Readiness  (0) 2020.03.19