다양한 이벤트에 대한 필터링 플랫폼을 연결합니다. 고급 보안이 포함된 Windows 방화벽 - 문제를 진단하고 해결합니다. 분류 기능의 코드

이전에 설치한 애플리케이션과 앞으로 더 이상 필요하지 않을 프로그램을 스마트폰 메모리에서 삭제하여 추가 공간을 차지하지 않고 백그라운드에서 RAM을 "로드"하지 않는 것이 좋습니다.

Lenovo 스마트폰에서 애플리케이션을 삭제하는 방법에는 "애플리케이션" 메뉴를 이용하는 방법과 데스크탑에서 직접 삭제하는 방법 두 가지가 있습니다. 이 두 방법 모두 동일한 결과를 가져옵니다. 즉, 애플리케이션이 전화기에서 영구적으로 삭제됩니다.

메뉴를 통해 애플리케이션 제거

  1. 메뉴 열기 "설정" -> "애플리케이션".
  2. 탭으로 이동 "제3자"그리고 원하는 애플리케이션을 찾으세요.
  3. 삭제하려는 애플리케이션의 그래픽 아이콘을 클릭한 후 상단 메뉴에서 “삭제”를 클릭하세요. 클릭하여 삭제를 확인하세요. "좋아요".
*타사 애플리케이션만 제거할 수 있습니다. 시스템(사전 설치된) 응용 프로그램 및 프로그램은 제거할 수 없습니다.

데스크탑에서 직접 앱 제거

  1. 화면 잠금을 해제하고 삭제할 애플리케이션 아이콘이 있는 바탕화면으로 이동하세요.
  2. 아이콘을 클릭하고 누른 상태에서 아이콘이 빨간색으로 바뀔 때까지 휴지통 아이콘으로 이동하세요.
  3. 눌러 제거 프로세스를 해제하고 확인하십시오. "좋아요".
*Lenovo 스마트폰의 독점 쉘 특성으로 인해 위 방법으로 삭제된 모든 애플리케이션은 스마트폰 메모리에서 영원히 삭제된다는 점을 기억하세요. 즉, 다른 회사의 휴대폰처럼 아이콘뿐만 아니라 전체 애플리케이션이 삭제됩니다. 다시 설치해야만 복원이 가능합니다.

Lenovo는 현재 글로벌 상위 5개 PC 제조업체 중 4위를 차지하고 있습니다. 이 회사의 무기고에는 데스크톱 PC, 노트북, 휴대폰, 스마트폰, 넷북은 물론 서버, 모니터, 태블릿, 비디오 카드까지 포함됩니다. 그리고 이는 마우스, 키보드, 메모리 모듈, 광학 드라이브, 전원 공급 장치, 소프트웨어 및 액세서리는 물론 노트북용 케이스 및 가방과 같은 추가 항목에도 불구하고 발생합니다. 회사 제품 범위의 폭은 매우 인상적이며, Lenovo 전자 제품으로 소비자 시장을 채우려면 진지한 지원이 필요합니다. Lenovo 전문 서비스 센터는 많은 도시, 특히 전국의 대규모 중심지에서 이를 수행합니다.

오늘날에는 전문 서비스 센터가 아닌 잘 알려지지 않았지만 "매우 이해도가 높은"장비 수리공에게 문의하는 경향이 상당히 일반적입니다. 그러한 선택을 할 때 귀하는 Lenovo 서비스 센터가 이러한 유형의 장비 및 전자 제품을 직접 독점적으로 다루고 있으며 이 특정 회사의 복잡성을 100% 알고 있다는 점을 이해해야 합니다. 또한 Lenovo 서비스 센터는 Lenovo 장비에 필요한 순정 부품을 공급하는 다른 전문 회사와 신속하게 협력할 수 있는 능력을 갖추고 있습니다.

이 회사에서 생산하는 대부분의 장치에는 여러 곳에서 볼 수 있는 다양한 비표준 및 고유 부품이 포함되어 있다는 점은 주목할 가치가 있습니다. 이는 Lenovo 장치의 알려진 문제이지만 전문가 덕분에 모든 것이 해결되었습니다. Lenovo 서비스 센터에서만 매트릭스 또는 순정 백라이트 램프 등 노트북에 필요한 부품을 구할 수 있습니다. 어쨌든, 이 회사의 전자 제품에 문제가 있는 경우 Lenovo 서비스 센터에 문의해야 합니다. 그 이유는 다음과 같습니다.

1. 전문가만이 문제의 정확한 원인을 완벽하게 진단하고 파악하여 수행된 작업의 품질을 보장할 수 있습니다.

2. 필요한 경우 Lenovo 서비스 센터에서만 작동하지 않는 부품을 정품으로 교체해 드릴 수 있습니다. 사전에 특별히 주문하거나 다른 전화를 통해서만 원래 부품을 얻을 수 있지만 센터에서는 가능한 한 최단 시간에 직접 도착합니다.

3. Lenovo 서비스 센터는 Lenovo 서비스를 위해 직접 선정되고 훈련된 전문가를 보유하고 있으므로 회사의 모든 장비에 대한 유지 관리를 제공합니다.

4. 하나 이상의 Lenovo 장치를 구매한 후 구매자는 무료 서비스를 받을 수 있는 보증 카드나 수표를 구매합니다. 이 서비스는 Lenovo 서비스 센터에서만 제공됩니다. 서비스 전문가 이전에 장치를 이미 개봉한 경우 이 권리는 상실됩니다.

5. Lenovo 제조업체 제품의 유지 관리는 보증 기간 종료 후 모든 서비스에서 이루어질 수 있습니다.

Lenovo 서비스 센터 웹사이트에서 수리가 필요한 장치 목록, 가격 정책(수리가 보증 대상이 아닌 경우) 및 가장 가까운 서비스 부서의 위치를 ​​확인할 수 있습니다. 그중에서도 태블릿, 노트북, 넷북, 올인원 PC에 대한 수리 서비스를 저렴한 가격으로 만나보실 수 있습니다. 수리작업을 수행하는 기술자들은 부품교체는 물론, 문제의 본질을 세심하게 파악하여 재발방지를 위해 최선을 다하고 있습니다.

Lenovo 서비스 센터에서는 다양한 수리 서비스를 제공받으며 고장 원인을 확인할 수 있습니다.

모든 기능의 고장 및 올바른 작동을 위해 전체 시스템을 테스트합니다.
내부 시스템 작동, 가열, 각 부품 작동을 포함한 가젯 진단을 통해 고장 원인을 정확하게 파악하고 장치의 새로운 고장을 방지할 수 있습니다.
전자 장치의 매트릭스를 포함한 부품 교체. Lenovo 서비스 센터는 회사의 공급업체와 직접 협력하므로 대각선의 크기는 중요하지 않습니다.

매트릭스 및 기타 장비 요소 수리. 장인은 문제를 철저히 검사하고 진단한 후, 원인이 발견되고 수리 방법이 명확해진 후에만 수리를 수행합니다.
예를 들어 가젯을 높은 곳에서 떨어뜨린 후와 같이 심각한 고장이 발생한 경우 필요할 수 있는 전체 장치의 포괄적인 수리입니다.

복잡한 수리는 물론이고 개별 부품을 수리하려면 실제 전문가의 개입이 필요하며, 일부 회사 전자 제품 디자인의 독창성과 독창성을 고려할 때 Lenovo 서비스 센터만이 이 작업을 효율적으로 수행할 수 있습니다. 일상 업무에서 장인들은 정기적으로 고급 수리 장비를 사용하므로 가장 섬세한 작업도 수행할 수 있습니다. 이러한 작업 도구 중에서 다음을 언급해야 합니다.

정확한 진단을 가능하게 하는 특수 디지털 현미경;
BGA 클래스 납땜 스테이션;

하드웨어 및 소프트웨어 컴플렉스의 완전한 수리 및 진단에 필요합니다.
또한 각 Lenovo 서비스 센터는 이 제조업체로부터 전자 제품 및 장비를 구매하려는 고객에게 자격을 갖춘 조언과 같은 보다 간단한 서비스도 제공합니다. 센터의 전문가들은 다양한 기기에 대한 작업 경험과 각 기기에 대한 깊은 지식을 갖고 있으므로 올바른 작동, 개별 기기 기능 사용 등에 대한 상담을 제공합니다. Lenovo 서비스 센터에서도 직접 제공됩니다. 다른 제안 중에는 노트북, 넷북 또는 데스크탑 PC에 대한 교체 및 소프트웨어 업데이트도 있습니다.

따라서 장치가 제대로 작동하지 않거나 특정 기능이 기억나지 않는 경우, Lenovo 기술 분야에서 문제나 질문이 발생하는 경우 Lenovo 서비스 센터의 서비스를 이용하기로 결정하는 것이 가장 올바른 결정입니다. 그리고 전자 기술.

Server 2008 및 Vista부터 WFP 메커니즘이 Windows에 내장되었습니다.
이는 API 및 시스템 서비스 세트입니다. 그 도움으로 가능해졌습니다
연결을 거부 및 허용하고 개별 패킷을 관리합니다. 이것들
혁신은 다양한 개발자의 삶을 단순화하기 위해 고안되었습니다.
보호 네트워크 아키텍처에 대한 변경 사항은 커널 모드와 커널 모드 모두에 영향을 미쳤습니다.
시스템의 사용자 모드 부분. 첫 번째 경우에는 필요한 기능이 내보내집니다.
fwpkclnt.sys, 두 번째 - fwpuclnt.dll(라이브러리 이름에 문자 "k" 및 "u")
각각 커널과 사용자를 나타냅니다). 이 기사에서는 응용 프로그램에 대해 이야기하겠습니다.
트래픽을 가로채고 필터링하기 위한 WFP, 기본 사항을 숙지한 후
WFP의 정의와 기능을 사용하여 간단한 필터를 작성해 보겠습니다.

기본 개념

코딩을 시작하기 전에 용어를 숙지하는 것이 절대적으로 필요합니다.
Microsoft 및 추가 문헌은 기사를 이해하는 데 유용합니다.
읽기가 더 쉬울 것입니다 :). 자, 가자.

분류- 패키지로 무엇을 할지 결정하는 과정.
가능한 작업: 허용, 차단 또는 설명선.

콜아웃검사를 수행하는 드라이버의 함수 집합입니다.
패키지. 패킷 분류를 수행하는 특수 기능이 있습니다. 이것
이 함수는 다음을 결정할 수 있습니다.

  • 허용(FWP_ACTION_PERMIT);
  • 블록(FWP_ACTION_BLOCK);
  • 계속 처리합니다.
  • 더 많은 데이터를 요청하세요.
  • 연결을 종료합니다.

필터- 어떤 경우에 호출되는지 나타내는 규칙
이것저것 콜아웃. 한 명의 운전자가 여러 개의 콜아웃을 가질 수 있으며,
이 기사에서는 설명선이 있는 드라이버를 개발할 것입니다. 그런데 콜라우타는
NAT 콜아웃과 같은 내장 기능도 있습니다.

- 다양한 필터를 조합한 표시입니다(또는,
MSDN에서 말하는 것처럼 "컨테이너").

사실을 말하자면, 지금까지 Microsoft의 문서는 상당히 불분명해 보입니다.
WDK의 예제는 볼 수 없습니다. 그러므로 갑자기 뭔가를 개발하기로 결정했다면
진지하게, 당신은 확실히 그들과 친해질 필요가 있습니다. 뭐, 이제 순조로워졌어
연습을 계속해 봅시다. 성공적인 컴파일과 테스트를 위해서는 WDK(Windows
드라이버 키트), VmWare, Vista가 설치된 가상 머신 및 WinDbg 디버거.
WDK의 경우 개인적으로 버전 7600.16385.0이 설치되어 있습니다. 모든 것이 있습니다.
필요한 라이브러리(드라이버를 개발할 예정이므로 필요한 라이브러리만
fwpkclnt.lib 및 ntoskrnl.lib) 및 WFP 사용 예. 모두에 대한 링크
도구는 이미 여러 번 소개되었으므로 반복하지 않겠습니다.

코딩

콜아웃을 초기화하기 위해 BlInitialize 함수를 작성했습니다. 일반 알고리즘
콜아웃을 생성하고 필터를 추가하는 방법은 다음과 같습니다.

  1. FWPMENGINEOPEN0세션을 엽니다.
  2. FWPMTRANSACTIONBEGIN0- WFP와 함께 운영 시작
  3. FWPSCALLOUTREGISTER0- 새로운 콜아웃 생성
  4. FWPMCALLOUTADD0- 시스템에 콜아웃 개체를 추가합니다.
  5. FWPMFILTERADD0- 새 필터를 추가합니다.
  6. FWPMTRANSACTIONCOMMIT0- 변경 사항 저장(추가됨
    필터).

함수는 0으로 끝납니다. Windows 7에서는 다음 중 일부가
기능이 변경되었습니다. 예를 들어 FwpsCalloutRegister1이 나타났습니다(
FwpsCalloutRegister0에 의해 저장됨). 그들은 주장이 다르며 결과적으로
함수 분류의 프로토타입이지만 지금은 중요하지 않습니다. - 0-함수
만능인.

FwpmEngineOpen0 및 FwpmTransactionBegin0은 우리에게 특별히 흥미롭지 않습니다.
준비 단계. 재미는 기능에서 시작됩니다
FwpsCalloutRegister0:

FwpsCalloutRegister0 프로토타입

NTSTATUS NTAPI FwpsCalloutRegister0
__inout 무효 *deviceObject,
__in const FWPS_CALLOUT0 *콜아웃,
__out_opt UINT32 *calloutId
);

콜아웃은 함수의 집합이라고 이미 말씀드렸으니 이제 차례입니다.
이에 대해 자세히 알려주세요. FWPS_CALLOUT0 구조에는 세 가지에 대한 포인터가 포함되어 있습니다.
함수 - 분류(classifyFn) 및 두 가지 알림(about
필터 추가/제거(notifyFn) 및 처리된 흐름 닫기(flowDeleteFn))
처음 두 기능은 필수이며 마지막 기능은 다음과 같은 경우에만 필요합니다.
연결뿐만 아니라 패킷 자체를 모니터링하고 싶습니다. 구조에도
고유 식별자인 콜아웃 GUID(calloutKey)를 포함합니다.

콜아웃 등록 코드

FWPS_CALLOUT sCallout = (0);
sCallout.calloutKey = *calloutKey;
sCallout.classifyFn = BlClassify;
// 분류 함수
sCallout.notifyFn = (FWPS_CALLOUT_NOTIFY_FN0)BlNotify;
// 필터 추가/제거를 알리는 함수
// 새 콜아웃 생성
status = FwpsCalloutRegister(deviceObject, &sCallout, calloutId);

DWORD WINAPI FwpmCalloutAdd0(
__in HANDLE 엔진핸들,
__in const FWPM_CALLOUT0 *콜아웃,
__in_opt PSECURITY_DESCRIPTOR SD,
__out_opt UINT32 *id
);
typedef 구조체 FWPM_CALLOUT0_(
GUID 콜아웃키;
FWPM_DISPLAY_DATA0 디스플레이데이터; // 콜아웃 설명
UINT32 플래그;
GUID *공급자 키;
FWP_BYTE_BLOB 공급자데이터;
GUID 적용 레이어;
UINT32 calloutId;
) FWPM_CALLOUT0;

FWPM_CALLOUT0 구조에서 ApplyLayer 필드에 관심이 있습니다.
콜아웃이 추가되는 레벨의 ID입니다. 우리의 경우는
FWPM_LAYER_ALE_AUTH_CONNECT_V4. 식별자 이름의 "v4"는 버전을 의미합니다.
Ipv4 프로토콜에는 Ipv6용 FWPM_LAYER_ALE_AUTH_CONNECT_V6도 있습니다. 고려하면
현재 IPv6 보급률이 낮으므로
IPv4. 이름의 CONNECT는 설치만 제어한다는 의미입니다.
연결이 없으면 이 주소로 패킷이 들어오고 나가는 것에 대한 이야기는 없습니다! 조금도
우리가 사용한 레벨 외에도 많은 레벨이 있습니다. 헤더 파일에 선언되어 있습니다.
WDK의 fwpmk.h.

시스템에 콜아웃 객체 추가

// 콜아웃 이름
displayData.name = L"차단 콜아웃";
displayData.description = L"차단 콜아웃";
mCallout.calloutKey = *calloutKey;
mCallout.displayData = 디스플레이데이터;
// 콜아웃 설명
//FWPM_LAYER_ALE_AUTH_CONNECT_V4
mCallout.applicableLayer = *layerKey;
status = FwpmCalloutAdd(gEngineHandle, &mCallout, NULL, NULL);

따라서 콜아웃이 시스템에 성공적으로 추가된 후에는 다음을 생성해야 합니다.
필터, 즉 콜아웃이 호출되는 경우를 나타냅니다.
- 분류 기능. FwpmFilterAdd0 함수에 의해 새 필터가 생성됩니다.
FWPM_FILTER0 구조를 인수로 전달합니다.

FWPM_FILTER0에는 하나 이상의 FWPM_FILTER_CONDITION0 구조가 있습니다(그들의
숫자는 numFilterConditions 필드에 의해 결정됩니다. layerKey 필드는 GUID로 채워집니다.
우리가 결합하려는 레이어입니다. 이 경우 우리는
FWPM_LAYER_ALE_AUTH_CONNECT_V4.

이제 FWPM_FILTER_CONDITION0 채우기를 자세히 살펴보겠습니다. 첫째로,
fieldKey는 우리가 제어하려는 포트, 주소,
앱이나 다른 것. 이 경우 WPM_CONDITION_IP_REMOTE_ADDRESS
우리가 IP 주소에 관심이 있음을 시스템에 나타냅니다. fieldKey 값은 다음을 결정합니다.
FWP_CONDITION_VALUE 구조에 어떤 유형의 값이 포함될지
FWPM_FILTER_CONDITION0. 이 경우에는 ipv4 주소가 포함됩니다. 갑시다
더 나아가. matchType 필드는 비교 방법을 결정합니다.
FWP_CONDITION_VALUE의 값과 네트워크를 통해 들어온 값. 여기에는 다양한 옵션이 있습니다.
FWP_MATCH_EQUAL을 지정할 수 있습니다. 이는 조건을 완전히 준수함을 의미합니다.
- FWP_MATCH_NOT_EQUAL, 즉 실제로 이것을 추가할 수 있습니다.
따라서 필터링(주소, 모니터링되지 않는 연결)은 제외됩니다.
FWP_MATCH_GREATER, FWP_MATCH_LESS 및 기타 옵션도 있습니다(enum 참조).
FWP_MATCH_TYPE). 이 경우에는 FWP_MATCH_EQUAL이 있습니다.

크게 신경 안쓰고 차단 조건만 썼어요
하나의 선택된 IP 주소. 일부 응용 프로그램이 시도되는 경우
선택한 주소에 대한 연결을 설정하면 분류자가 호출됩니다.
우리의 콜아웃 기능. 에서 말한 내용을 요약한 코드를 볼 수 있습니다.
"시스템에 필터 추가" 추가 기사를 참조하십시오.

시스템에 필터 추가

filter.flags = FWPM_FILTER_FLAG_NONE;
filter.layerKey = *layerKey;
filter.displayData.name = L"차단 콜아웃";
filter.displayData.description = L"차단 콜아웃";
filter.action.type = FWP_ACTION_CALLOUT_UNKNOWN;
filter.action.calloutKey = *calloutKey;
filter.filterCondition = 필터조건;
// 하나의 필터 조건
filter.numFilterConditions = 1;
//filter.subLayerKey = FWPM_SUBLAYER_UNIVERSAL;
filter.weight.type = FWP_EMPTY; // 자동 가중치.
// 원격 주소에 필터를 추가합니다.
filterConditions.fieldKey = FWPM_CONDITION_IP_REMOTE_ADDRESS;
filterConditions.matchType = FWP_MATCH_EQUAL;
filterConditions.conditionValue.type = FWP_UINT32;
filterConditions.conditionValue.uint32 = ntohl(BLOCKED_IP_ADDRESS);
// 필터 추가
status = FwpmFilterAdd(gEngineHandle, &filter, NULL, NULL);

물론 일반적으로 필터링 조건은 여러 가지가 있을 수 있습니다. 예를 들어 다음을 수행할 수 있습니다.
특정 원격 또는 로컬 포트에 대한 연결 차단을 지정합니다(FWPM_CONDITION_IP_REMOTE_PORT
및 FWPM_CONDITION_IP_LOCAL_PORT 각각). 모든 패키지를 잡을 수 있습니다
특정 프로토콜 또는 특정 애플리케이션. 그리고 그게 전부가 아닙니다! 할 수 있다,
예를 들어 특정 사용자의 트래픽을 차단합니다. 일반적으로 다음과 같은 곳이 있습니다.
산책하다.

그러나 필터로 돌아가 보겠습니다. 우리의 경우 분류 기능은 간단합니다.
지정된 주소(BLOCKED_IP_ADDRESS)에 대한 연결을 차단하고 반환합니다.
FWP_ACTION_BLOCK:

분류 기능의 코드

무효 BlClassify(
const FWPS_INCOMING_VALUES* inFixedValues,
const FWPS_INCOMING_METADATA_VALUES* inMetaValues,
VOID* 패킷, IN const FWPS_FILTER* 필터,
UINT64 flowContext,FWPS_CLASSIFY_OUT* classifyOut)
{
// FWPS_CLASSIFY_OUT0 구조를 채웁니다.
if(classifyOut)( // 패킷을 차단합니다.
classifyOut->actionType =
FWP_ACTION_BLOCK;
// 필요한 패키지를 차단할 때
FWPS_RIGHT_ACTION_WRITE 재설정
classifyOut->rights&=~FWPS_RIGHT_ACTION_WRITE;
}
}

실제로 분류 함수는 FWP_ACTION_PERMIT를 설정할 수도 있습니다.
FWP_ACTION_CONTINUE 등

마지막으로 드라이버를 언로드할 때 설치된 모든 항목을 제거해야 합니다.
콜아웃(시스템이 콜아웃을 호출하려고 하면 어떻게 될지 추측해 보세요.
언로드된 드라이버? 맞습니다, BSOD). 이에 대한 기능이 있습니다
FwpsCalloutUnregisterById. 32비트 숫자가 매개변수로 전달됩니다.
FwpsCalloutRegister 함수에서 반환된 콜아웃 식별자입니다.

콜아웃 종료하기

NTSTATUS BlUninitialize())(
NTSTATUS ns;
if(gEngineHandle)(
FwpmEngineClose(gEngineHandle);

}
if(gBlCalloutIdV4)(
ns =FwpsCalloutUnregisterById(gBlCalloutIdV4);
}
ns를 반환;
}

보시다시피 WFP 필터 프로그래밍은 그렇게 어려운 작업이 아닙니다.
MS는 우리에게 매우 편리한 API를 제공했습니다. 그건 그렇고, 우리의 경우에는 설치했습니다.
드라이버에서 필터링하지만 usermod에서도 수행할 수 있습니다! 예를 들어 wdk의 샘플
msnmntr(MSN 메신저 트래픽 모니터)이 바로 그 역할을 합니다.
필터의 커널 모드 부분을 오버로드합니다.

귀하의 GUID

콜아웃을 등록하려면 고유 식별자가 필요합니다. 하기 위해
GUID(Globally Unique Identifier)를 얻고, 포함된 guidgen.exe를 사용하세요.
비주얼 스튜디오에서. 이 도구는 (VS_Path)\Common7\Tools에 있습니다. 충돌 확률
GUID 길이가 128비트이고 총 2^128개를 사용할 수 있으므로 매우 작습니다.
식별자.

필터 디버깅

장작을 디버깅하려면 Windbg+VmWare 조합을 사용하는 것이 편리합니다. 이를 위해서는 당신이 필요합니다
게스트 시스템(Vista)과 디버거를 모두 구성합니다.
WinDbg. WinXP에서 원격 디버깅을 위해 boot.ini를 편집해야 한다면
Vista+에는 bcdedit라는 콘솔 유틸리티가 있습니다. 평소와 같이 디버깅을 활성화해야 합니다.

BCDedit /dbgsettings 직렬 디버그포트:1 BAUDRATE:115200 BCDedit /debug
ON(또는 BCDedit /디버그 ON 설정)

이제 모든 것이 준비되었습니다! 아래 텍스트가 포함된 배치 파일을 시작합니다.

windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0 시작

windbg 창에서 디버깅 출력을 확인하세요(그림 참조).

결론

보시다시피 WFP의 범위는 상당히 넓습니다. 방법을 결정하는 것은 당신에게 달려 있습니다.
이 지식을 적용해보세요 - 악을 위해 또는 선을 위해 :)

Windows 방화벽(방화벽 또는 방화벽)은 존중을 불러일으키지 않습니다. XP에서 Vista로 약간 변경되었으며 간단한 작업은 잘 수행하지만 최고의 개인 방화벽이 되겠다는 야망은 부족합니다. 그러나 Windows 7 방화벽에 몇 가지 새로운 기능이 추가되었음에도 불구하고 제가 기대했던 기능은 여전히 ​​제공되지 않았습니다.

홈 그룹과 어울리기

설치하는 동안 Windows 7에서는 "홈 그룹"을 생성하라는 메시지를 표시합니다. 네트워크에서 다른 Windows 7 컴퓨터가 검색되면 해당 컴퓨터도 그룹에 가입하도록 초대됩니다. 그리고 이를 위해 필요한 것은 비밀번호뿐입니다. 그러나 Windows 7을 실행하는 컴퓨터 한 대가 있으면 다른 컴퓨터 그룹에 로그인하는 과정을 볼 수 없었지만 이에 대한 알림은 손상되지 않았습니다. 그러나 Windows 7을 실행하는 모든 컴퓨터는 홈 그룹에 가입할 수 있지만 Windows 7 Home Basic 및 Windows 7 Starter를 실행하는 컴퓨터는 홈 그룹을 만들 수 없습니다.

동일한 홈 그룹에 있는 컴퓨터는 프린터와 특정 파일 라이브러리를 공유(또는 "공유")할 수 있습니다. 기본적으로 사진, 음악, 비디오 및 문서 라이브러리는 공유되지만 사용자는 자신의 재량에 따라 이를 제한할 수 있습니다. 운영 체제의 도움말에는 파일이나 폴더를 공유에서 제외하는 방법, 읽기 전용으로 만드는 방법, 액세스를 제한하는 방법에 대한 명확한 설명이 제공됩니다.

홈 네트워크에서 사용자는 자신의 콘텐츠를 다른 컴퓨터 및 장치와 공유할 수 있으며 Windows 7을 실행하지 않는 컴퓨터나 컴퓨터가 아닌 컴퓨터와도 공유할 수 있습니다. 특히 Microsoft는 Xbox 360에서 콘텐츠를 공유하는 방법에 대한 예를 보여주었습니다. 그러나 회사는 Wii를 네트워크에 연결하는 기능을 제공하지 않습니다. 아쉽게도 이 회사는 Wii를 스트리밍 미디어 장치로 인정하지 않았습니다.

그렇다면 Windows 7의 홈 네트워크는 얼마나 더 안전할까요? 일반적으로 파일 및 폴더 공유에 실패한 사용자는 파일월, 바이러스 백신 등 주변의 모든 것을 비활성화하기 시작하는데, 이는 이 프로세스를 방해할 수 있다고 생각됩니다. 동시에, 공유를 간단하게 만들면 주변의 모든 것을 끄는 일을 피할 수 있습니다.

비스타가 네트워크를 공용(Public)과 개인(Private)으로 나눈다면, 윈도우 7은 개인 네트워크를 집(Home)과 직장(Work)으로 나눈다. 홈그룹은 홈 네트워크를 선택한 경우에만 사용할 수 있습니다. 그러나 회사 네트워크에 있더라도 컴퓨터는 여전히 다른 장치를 보고 연결할 수 있습니다. 결과적으로 공용 네트워크(예: 인터넷 카페의 무선 네트워크)에서 Windows 7은 안전을 위해 다른 장치에 대한 액세스를 차단합니다. 소소하지만 좋은 기회네요.

듀얼 모드 방화벽

Vista와 XP에서 방화벽 관리는 단순히 방화벽을 켜고 끄는 것으로 요약됩니다. 동시에 Windows 7은 사용자에게 개인(가정 및 직장) 네트워크와 공용 네트워크에 대한 다양한 구성 설정을 제공합니다. 동시에 사용자는 지역 카페 등에서 작업하기 위해 방화벽 설정을 입력할 필요가 없습니다. 그가 해야 할 일은 공용 네트워크를 선택하는 것뿐입니다. 그러면 방화벽 자체가 전체 제한 매개변수 세트를 적용합니다. 대부분의 경우 사용자는 들어오는 모든 연결을 차단하도록 공용 네트워크를 구성할 것입니다. Vista에서는 사용자 자신의 네트워크로 들어오는 모든 트래픽을 차단하지 않고는 이 작업을 수행할 수 없었습니다.

일부 사용자는 방화벽이 필요한 이유를 이해하지 못합니다. UAC가 작동한다면 방화벽은 과잉이 아닌가? 실제로 이러한 프로그램은 완전히 다른 목표를 가지고 있습니다. UAC는 로컬 시스템 내에서 프로그램과 해당 작업을 모니터링합니다. 방화벽은 들어오고 나가는 데이터를 면밀히 관찰합니다. 이 두 프로그램을 두 명의 영웅이 연속해서 서서 좀비 공격을 물리치는 것으로 상상한다면, 거의 잘못될 수 없다고 말할 수도 있습니다.

처음에는 “Windows 방화벽이 새 프로그램을 차단할 때 알림”이라는 새로운 기능에 흥미를 느꼈습니다. 이는 Windows 방화벽이 프로그램을 제어하고 진정한 양방향 방화벽이 되었다는 신호입니까? 나는 이 기능을 비활성화하고 싶은 마음에 사로잡혔습니다. 결과적으로 Windows 방화벽은 이전보다 더 많은 존경을 받지 못했습니다.

ZoneLabs가 양방향 개인 방화벽을 대중화한 지 10년이 지났습니다. 그녀의 ZoneAlarm 프로그램은 모든 컴퓨터 포트를 숨겼으며(Windows 방화벽에서는 가능) 프로그램의 인터넷 액세스를 제어할 수도 있었습니다(Windows 방화벽에서는 여전히 불가능). 예를 들어 Norton Internet Security 2010 및 기타 패키지에서와 같이 프로그램 동작에 대한 지능형 모니터링이 필요하지 않습니다. 그러나 Windows 8이 출시되면 Microsoft가 방화벽에 10년 된 ZoneAlarm 기능 세트를 도입하기를 바랍니다.

Microsoft는 많은 사용자가 타사 방화벽과 보안 패키지를 설치하고 단순히 Windows 방화벽을 비활성화한다는 사실을 잘 알고 있습니다. 과거에는 많은 타사 보안 프로그램이 충돌을 피하기 위해 Windows 방화벽을 자동으로 비활성화했습니다. Windows 7에서는 Microsoft가 직접 이 작업을 수행했습니다. 알려진 방화벽을 설치할 때 운영 체제는 내장 방화벽을 비활성화하고 "방화벽 설정은 해당 제조업체의 해당 프로그램에 의해 제어됩니다"라고 보고합니다.

사용 여부에 관계없이 Windows 방화벽은 모든 Windows 7에 존재하며 운영 체제와 견고하게 통합됩니다. 그렇다면 타사 보안 응용 프로그램이 Windows 파일월을 자체 목적으로 사용할 수 있다면 더 좋지 않을까요? 이것이 Windows 필터링 플랫폼이라는 프로그래밍 인터페이스의 기본 아이디어입니다. 하지만 개발자가 그것을 사용할 것인가? 이에 대해서는 다음 부분에서 자세히 설명합니다.

Windows 7 보안: Windows 필터링 플랫폼

방화벽은 매우 낮은 수준에서 Windows 7과 작동해야 하는데, 이는 Microsoft 프로그래머가 절대 싫어하는 것입니다. Windows 7의 64비트 버전(64비트 Windows 7은 32비트 Windows 7에 비해 여러 가지 보안 이점이 있음)에 있는 PatchGuard와 같은 일부 Microsoft 기술은 공격자를 차단하고 커널이 이에 액세스하지 못하도록 보호합니다. 그러나 Microsoft는 타사 프로그램과 동일한 수준의 보안을 제공하지 않습니다. 그래서 뭐 할까?

이 문제에 대한 해결책은 WFP(Windows 필터링 플랫폼)입니다. Microsoft에 따르면 후자를 사용하면 타사 방화벽이 Windows 방화벽의 주요 기능을 기반으로 하여 사용자 지정 기능을 추가하고 Windows 방화벽의 일부를 선택적으로 활성화하거나 비활성화할 수 있습니다. 결과적으로 사용자는 Windows 방화벽과 공존할 방화벽을 선택할 수 있습니다.

하지만 보안 개발자에게는 실제로 얼마나 유용할까요? 그들이 그것을 사용할 것인가? 몇 명에게 물어봤는데 많은 답변을 받았어요.

비트디펜더 LLC

제품 개발 관리자인 Iulian Costache는 그의 회사가 현재 Windows 7에서 이 플랫폼을 사용하고 있다고 말했습니다. 그러나 상당한 메모리 누수가 발생했습니다. 오류는 Microsoft 측에 있으며, 최대 규모의 소프트웨어 거대 기업이 이미 이를 확인했습니다. 그러나 Julian은 언제 해결될지 모릅니다. 그 동안 새로운 WFP 드라이버를 이전 TDI로 일시적으로 교체했습니다.

체크 포인트 소프트웨어 기술 회사

Check Point Software Technologies Ltd 홍보 관리자 Mirka Janus는 자신의 회사가 Vista부터 WFP를 사용해 왔다고 말했습니다. 그들은 또한 Windows 7에서 플랫폼을 사용합니다. 훌륭하고 지원되는 인터페이스이지만 이를 사용하는 보안 제품에 맬웨어나 호환되지 않는 드라이버가 위험할 수 있습니다. ZoneAlarm은 항상 네트워크 연결 계층과 패킷 계층이라는 두 가지 계층에 의존해 왔습니다. Vista부터 Microsoft는 네트워크 연결을 필터링하는 지원 방법으로 WFP를 제공했습니다. Windows 7 SP1부터 Microsoft는 WFP에 패킷 필터링을 활성화하도록 가르쳐야 합니다.

“지원되는 API를 사용하면 안정성이 향상되고 BSOD가 줄어듭니다. 많은 드라이버를 등록할 수 있으며 각 드라이버 개발자는 다른 드라이버와의 호환성에 대해 걱정할 필요가 없습니다. 예를 들어 드라이버가 차단되면 등록된 다른 드라이버는 해당 차단을 우회할 수 없습니다. 반면, 호환되지 않는 드라이버는 등록된 다른 모든 드라이버를 우회하여 문제가 될 수 있습니다. 우리는 네트워크 보안을 WFP에만 의존하지 않습니다.”

에프시큐어(주)

F-Secure Corporation의 선임 연구원 Mikko Hypponen은 어떤 이유로 WFP가 보안 소프트웨어 개발자들 사이에서 인기를 끌지 못했다고 말했습니다. 동시에 그의 회사는 꽤 오랫동안 WFP를 사용해왔고 만족했습니다.

맥아피, Inc.

McAfee 수석 설계자 Ahmed Sallam은 WFP가 이전 NDIS 기반 인터페이스보다 더 강력하고 유연한 네트워크 필터링 인터페이스라고 말했습니다. McAfee는 보안 제품에 WFP를 적극적으로 사용합니다.

동시에 WFP가 긍정적인 기능을 갖추고 있음에도 불구하고 사이버 범죄자는 플랫폼의 장점을 활용할 수도 있습니다. 플랫폼을 사용하면 맬웨어가 Windows 커널 수준 네트워크 스택에 들어갈 수 있습니다. 따라서 64비트 커널 수준 Windows 드라이버는 커널이 맬웨어를 로드하지 못하도록 보호하기 위해 디지털 서명되어야 합니다. 그러나 32비트 버전에서는 디지털 서명이 필요하지 않습니다.

예, 이론적으로 디지털 서명은 합리적인 보안 메커니즘이지만 실제로는 맬웨어 작성자가 직접 서명을 얻을 수 있습니다.

팬더 보안

Panda Security 대변인 Pedro Bustamante는 자신의 회사가 WFP 플랫폼을 모니터링하지만 현재는 사용하지 않는다고 말했습니다. 회사는 WFP의 주요 단점을 고려합니다. 첫째, 보호를 극대화하기 위해 다양한 기술을 결합하는 기술을 만들 수 없다는 것입니다. 회사가 기계에 들어오고 나가는 패킷을 볼 수 없다면 기술은 쓸모가 없습니다. 또한 다른 보안 기술에 대한 센서 역할도 해야 합니다. WFP에서는 이러한 기능을 제공하지 않습니다. 둘째, WFP는 Vista 및 최신 운영 체제에서만 지원됩니다. 플랫폼은 이전 버전과 호환되지 않습니다. 셋째, WFP는 상당히 새로운 플랫폼이므로 회사는 오래되고 입증된 기술에 의존하는 것을 선호합니다.

시만텍 주식회사

Symantec의 소비자 제품 관리 이사인 Dan Nadir는 WFP가 상대적으로 참신하기 때문에 아직 제품에 사용되지 않는다고 말했습니다. 그러나 시간이 지남에 따라 회사는 이를 마이그레이션할 계획입니다. 왜냐하면... 현재 의존하고 있는 이전 인터페이스는 필요한 전체 기능을 제공할 수 없습니다. 그들은 WFP를 좋은 플랫폼으로 생각합니다. 왜냐하면... 다양한 타사 프로그램 간의 상호 운용성을 제공하도록 특별히 설계되었습니다. 원칙적으로 플랫폼은 앞으로 호환성 문제가 훨씬 적어야 합니다. WFP는 Microsoft Network Diagnostic Framework와 통합되어 있기 때문에 훌륭합니다. 이것은 매우 유용하기 때문에... 네트워크 트래픽에 방해가 되는 특정 프로그램 검색을 크게 용이하게 합니다. 마지막으로 WFP는 향상된 운영 체제 성능과 안정성으로 이어져야 합니다. 플랫폼은 에뮬레이션과 드라이버 충돌 또는 안정성 문제를 방지합니다.

그러나 Nadir에 따르면 WFP는 모든 구조에 존재하는 특정 문제를 일으킬 수 있습니다. WFP에 의존하는 개발자는 WFP 자체 내의 취약점을 해결할 수 없으며 WFP가 제공하는 특정 기능을 확장할 수도 없습니다. 또한 많은 프로그램이 WFP에 의존하는 경우 맬웨어 제작자는 이론적으로 WFP 자체를 공격하려고 시도할 수 있습니다.

트렌드마이크로(주)

Trend Micro Inc.의 연구 이사 Dale Liao는 플랫폼의 가장 큰 장점은 운영 체제와의 호환성이라고 말했습니다. 또한 이제 표준 방화벽이 유용해졌습니다. 이제 그들은 사용자에게 정말로 중요한 것에 집중할 수 있습니다. WFP의 나쁜 점은 플랫폼에서 오류가 발견되면 Microsoft에서 수정될 때까지 기다려야 한다는 것입니다.

WFP: 결론

결과적으로 제가 인터뷰한 보안 개발자 대부분은 이미 WFP를 사용하고 있습니다. 사실, 일부는 다른 기술과 병행합니다. 그들은 플랫폼의 문서화 및 형식성과 같은 상호 운용성과 운영의 안정성을 좋아합니다. 반면, 모든 개발자가 WFP에 의존한다면 플랫폼은 잠재적으로 모든 사람에게 약점이 될 수 있습니다. 그리고 그들은 이 문제를 해결하기 위해 Microsoft에 의존해야 할 것입니다. 또한 플랫폼은 아직 패킷 수준 필터링을 제공하지 않습니다.

WFP의 또 다른 큰 단점은 Windows XP에서 사용할 수 없다는 것입니다. 따라서 XP를 지원하려는 개발자는 두 개의 병렬 프로젝트를 실행해야 합니다. 하지만 XP가 시장을 떠나면서 WFP는 개발자들 사이에서 더욱 인기를 끌 것이라고 생각합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: