출처 - 한국성서대학교 - 매일의 성경


5월 30일 (월) / 역대상 16장, 시편 96, 138편

질문: 다윗이 여호와의 도를 노래 할 이유는 무엇이라고 했는가?

대답:

 시편 138편

  5. 그들이 여호와의 도를 노래할 것여호와의 영광이 크심이니이다.


5월 31일 (화) / 시편 39, 105, 106편

질문: 다윗은 참으로 인생이란 무엇이라고 말하는가?

대답:

 시편 39편

  11. 주께서 죄악을 책망하사 사람을 징계하실 때에 그 영화를 좀먹음 같이 소멸하게 하시니 참으로 인생이란 모두 헛될 뿐이니이다. ( 셀라 ) 


6월 1일 (수) / 시편 50, 62, 73편

질문: 하나님은 감사로 제사를 드리는 자가 자신을 어떻게 한다고 했는가?

대답:

 시편 50편

  23. 감사로 제사를 드리는 자나를 영화롭게 하나니 그의 행위를 옳게 하는 자에게 내가 하나님의 구원을 보이리라


6월 2일 (목) / 시편 74 ~ 76편

질문: 아삽은 진실로 사람의 노여움을 주를 어떻게 하게 하신다고 말했는가?

대답

 시편 76편

  10. 진실로 사람의 노여움은 주 찬송하게 될 것이요 그 남은 노여움은 주께서 금하시리이다.


6월 3일 (금) / 시편 77 ~ 79편

질문: 아삽은 우리가 주의 백성이며 주의 목장에 무엇이라고 했는가?

대답:

 시편 79편

  13. 우리는 주의 백성이요 주의 목장이니 우리는 영원히 주께 감사하며 주의 영예를 대대에 전하리이다


6월 4일 (토) / 시편 80 ~ 82편

질문: 아삽은 하나님을 요셉을 양떼 같이 인도하시는 누구라고 불렀는가?

대답:

 시편 80편

  1. 요셉을 양 떼 같이 인도하시는 이스라엘의 목자여 귀를 기울이소서 그룹 사이에 좌정하신 이여 빛을 비추소서


6월 5일 (일) / 역대상 17장, 시편 83, 88편

질문: 다윗이 성전을 짓고자 할 때 그 뜻을 어떤 선지자에게 말했는가?

대답:

 역대상 17장

  1. 다윗이 그의 궁전에 거주할 때에 다윗이 선지자 나단에게 이르되 나는 백향목 궁에 거주하거늘 여호와의 언약궤는 휘장아래에 있도다

클라우드의 역사

1990년대 이전 컴퓨터와 인터넷(:12)은 소수의 전문가들만이 사용가능한 도구였다.
그러나 저렴한 컴퓨터와 통신인프라망 그리고 WWW(월드 와이드 웹)의 등장으로 누구나 사용할 수 있을만한 도구가 되었다.
그러나 그럼에도 오랫동안 컴퓨터와 인터넷은 그다지 사용하기가 쉽지 않았다.
심지어는 지금도 사용하기가 그다지 쉬운 것은 아니다.

인터넷은 분산 네트워크 시스템을 지향하는데, 왠만한 파워유저가 아닌한은 네트워크에 분산되어 있는 자원을 효과적으로 다루는데 어려움을 느끼기 때문이다.


소프트웨어 개발자를 예로 들어보자.
소프트웨어 개발자는 인터넷 사용 측면에서 파워유저 혹은 전문가 집단에 속한다고 할만할 것이다.
그러나 인터넷 자원을 효율적으로 사용하느냐 하면, 그닥 그렇지도 않다는 걸 알 수 있을 것이다.


문서 관리를 예로 들어보자.
개발자들이 문서를 관리하는데 있어서 가장 큰 문제는 공통된 저장소를 가지고 있지 않다는 점이다.
문서들은 회사 컴퓨터, 개인 노트북, 이메일 등등 여기 저기 산재해 있는 경우가 많다.
또한 노트북, 데스크탑, 스마트폰, 태블릿 등 기기에 따라서 아예 접근이 안되거나 불편해지는 문제가 있다.


결국 인터넷 서비스 사용자는 다양한 도메인에 접근하기 위한 아이디/패스워드 정보를 기억하고 있어야 하며,
서비스 종류에 따라서 기기를 바꿔가면서 접근해야 하는 불편함을 가진다.


1990 초반까지는 이러한 불편함이 큰 문제가 되지 않았지만 인터넷이 점점더 공공재의 성격을 띄어가면서 조만간 문제가 되리라는 건 쉽게 예상할 수 있었다. 
1990년대 중 후반부터 이슈로 떠오른 웹 사이트에 대한 브라우저 접근성에 대한 문제도 인터넷이 공공재로 인식되면서, 접근성을 보장받아야 한다는 요구에서 생겼다고 볼 수 있다.
이렇게 모든 데이터가 인터넷으로 모이고, 모든 기기가 인터넷으로 연결되면서 공공재로써 이들을 함께 묶어서 제공하기 위한 노력이 이루어지게 된다. 이때 부터 클라우드 컴퓨팅이라는 단어가 널리퍼지기 시작하는데, 대략 21C초부터다.
초기 클라우딩 컴퓨터는 SaaS에 집중되었으나 구글과 야후, 아마존등을 중심으로 범용적인 클라우드 컴퓨팅 기술에 대해서 연구 한다. 특히 아마존이 클라우드 컴퓨팅영역에 중요한 역할을 담당했다. 아마존은 S3(Simple Storage Service)를 이용 웹이라는 단일 통로로 사용자들이 하나의 도메인에 애플리케이션 데이터, 개인 및 기업 백업, 대역폭 확보가 가능하게 만들었다.

클라우드 컴퓨팅으로 얻을 수 있는 이점은 다음과 같다. 
이들 이점은 인터넷에 연결되어 있을 때 얻을 수 있다.

이동성과 휴대성
데이터를 저장하기 위한 공간을 가지고 다닐 필요가 없기 때문에 이동성을 확보할 수 있다.

비용 절감
우리가 사용하는 개인 PC 자원의 대부분은 놀고 있다. 
아마도 PC자원의 20%도 채 사용하지 못할 것이다. 이는 80%정도의 낭비가 이루어짐을 의미한다. 
클라우드 컴퓨팅은 연산과 저장공간을 만들고 이를 사용자에게 분배하는 방식으로 가용율을 높일 수 있으므로, 저렴하게 메모리와 연산공간을 사용할 수 있다. 
예컨데, 구글 APPS를 이용하면 직접 구축하는 것의 10%이내의 비용으로 기업 정보 시스템을 구축할 수 있다.

안정성과 신뢰
개인 PC에 저장하는 것보다 안전하게 데이터를 보관할 수 있다. 
많은 클라우드 컴퓨팅 서비스가 유저의 데이터를 백업해 준다.
반면 단점들도 있는데, 데이터가 중앙에 집중됨으로써 발생하는 문제들이다.
서버가 공격당할 경우 개인 정보가 유출될 수 있다.

클라우드 컴퓨팅이 데이터 백업을 해주기는 하지만, 추가 비용을 부담해야 하는 경우가 대부분이다. 미리 백업하지 않은 정보는 되살리지 못하는 경우가 있을 수 있다. 

 물론 개인 컴퓨터에 저장을 한다고 해도, 백업하지 않은 정보를 되살리는 건 어려운 일이지만 자기가 제어할 수 있는 장비이기 때문에 비용을 들여서라도 복구할 수 있는데, 클라우드 컴퓨팅이라면 복구를 포기해야 할 것이다.

사용자가 원하는 애플리케이션을 설치하는데 제약이 심할 수 있다. 
 내가 원하는 운영체제와 소프트웨어, 소프트웨어 버전을 지원하지 않는 경우가 많다. 이 문제는 가상화로 어느 정도 해결되어가고 있는 추세다.


기업이 사용하는 'ERP(Enterprise Resource Planning, 전사자원관리)'는 기업의 경영 및 관리를 위한 컴퓨터 시스템이다.


회사 내부 각 부문에 걸쳐 개별적으로 운영되던 각종 경영자원을 하나의 통합 시스템으로서 관리함으로써 생산성을 극대화하려는 경영혁신 장치다.


각 부서는 ERP를 통해 타 부서와 긴밀한 영향 관계를 주고 받으므로 기업 전체 시스템이 유기적으로 통합되어 종과 횡을 서로 잇는 흐름이 끊임없이 이어진다.


ERP는 데이터베이스에 기반해 기업의 여러 자원의 흐름을 처리하고 감시한다.


ERP 소프트웨어는 실로 다양하지만, 그 중에서도 'SAP(Systems, Applications, and Products in Data Processing)'는 해당 분야의 대표적 브랜드다. 


특히 대기업 수준의 큰 규모의 기업들이 SAP 소프트웨어를 사용한다. 

SAP를 통해 제조 개발 구매 마케팅 서비스 물류 유통 회계 등 업무를 통합 관리한다.


기업 활동에 있어 ERP가 차지하는 비중이 워낙 크다 보니 ERP 보안은 곧 기업보안 그 자체라 할 수 있다.


기업용 시스템은 기업 내부에서만 폐괘적으로 사용되므로 비교적 안전하다는 인식이 지배적이었지만, 웹 시대의 본격화 그리고 시스템이 계열 포함 전사적 통합 구축 방향으로 발전함에 따라 내·외부 구분은 사라졌다.


SAP 또한 CRM SCM SRM 등의 확장 패키지를 ERP 시스템과 연계 통합했다.

결과적으로 ERP 시스템의 보안 문제는 기술적 차원을 넘어 비즈니스 차원으로 확장된 셈이다.



SAP 데이터 암호화


ERP 내부에는 임직원 개인정보, 금융거래 기록, 영업기밀 등 중요한 정보들이 들어있다. 

이는 노출 시 기업의 존폐를 염려해야 할 정도로 중요한 기밀인 동시에, 정보 보호 관련 법규에 따라 필수적으로 암호화해야 하는 정보이기도 하다.


하지만 기업은 ERP 데이터를 섣불리 암호화하지 못하고 있다.

데이터 구조나 하부 시스템을 건드리기 어려운 고유 특성상 암호화 작업이 쉽지 않기 때문이다.


특히 SAP는 그 특성 상 데이터의 형식과 길이 등을 변경하는 일이 매우 까다로워 사실상 불가능하다.

따라서 데이터의 속성을 유지하는 동시에 보안성을 갖추는 일이 가장 심각한 문제이다.


SAP DB는

1) 초기에 정의된 Data Element을 이용해 표준화 및 가독성을 높이는 구조로 되어있다.

2) 지속적인 업데이트가 적용되어야 하는데, 허용된 범위를 벗어난 개발을 할 경우 업데이트가 어려울 수 있다.

3) 전사 자원을 통한 ERP시스템으로 실시간 처리가 필요하다. 따라서 SAP DB는 데이터 구조의 변경에 여러가지 제약을 가지고 있다.


SAP DB는 데이터 구조의 변경에 여러 가지 제약을 가지고 있다.

SAP의 정책 상 표준 기능에 영향을 미치지 않는 범위에서는 추가 기능 개발을 허용하긴 하나, 표준을 변경하는 작업은 권장하지 않는다.


예를 들어, 데이터 길이나 속성을 변경하거나 프로그램 코드를 변경할 경우 SAP동작에 있어 예기치 못한 문제가 발생할 수 있다. 그런 경우 유지보수의 부담을 회사가 감수해야 한다.


따라서 SAP는 일반적인 데이터 베이스 암호화가 아닌 다른 방식으로 접근해야 한다.

그리고 바로 그 접근방법이 바람직한 SAP 보안의 결정적 변수가 된다.



SAP 암호화 방식


Tokenization 방식

 신용카드 번호 CCN, 개인정보, 거래정보 등 높은 보안성을 요구하는 데이터만 따로 뽑아내 AES 등 일반적인 암호화 방식을 통한 보안용 DB에 저장하는 방식

 SAP 시스템 내부에서는 실제 데이터 대신에 '랜덤 토큰'으로 대체해서 사용하기 때문에 'Tokenization'이라 한다.


 별도 시스템 사이의 통신이 필수적이고 전체 시스템의 복잡도가 높아지고 따라서 성능에 영향을 미친다는 단점이 있다.

 무엇보다 데이터와 토큰을 1:1 매칭한 테이블이 존재하고 또 통신구간상 데이터가 오가야 한다는 점에서 근본적인 보안 허점이 있다고 볼 수 있다.



FPE: Format - Preserving Encryption 방식

 암호화 장치를 SAP 내부에 탑재하여 시스템과 유기적으로 연동하는 방식


 SAP 시스템 내부에서 동작하기 때문에 시스템 성능에 미치는 영향이 거의 없다.

 SAP데이터베이스에 있는 토큰 정보가 실재 정보이기 때문에 암호화 알고리즘과 암복호화 키관리, 사용자 인증 보안 등 일반적 보안성 유지가 매우 중요


 시스템 통합적 보안 플랫폼 규모의 설계가 가능한 FPE 암호화 전문기업의 제품을 사용해야 한다.




정리

 ERP보안은 매우 중요하다.

 SAP보안은 시스템 특성상 보다 까다로운 검토가 필요하다.


 빠른 성능과 높은 보안성을 동시에 추구해야 하는 상황에는 Tokenization 방식보다 FPE방식

SAP보안에 대해 통합적 이해를 갖춘 전문 보안 기업과의 긴밀한 협조가 필요하다.



출처 - 한국성서대학교 - 매일의 성경


5월 23일 (월) / 사무엘상 31 장, 사무엘하 1 장, 시편 18 편

질문: "자기에게 피하는 모든자의 방패" 이신 분은 누구인가?

답변:

 시편 18편

  30. 하나님의 도는 완전하고 여호와의 말씀은 순수하니 그는 자기에게 피하는 모든 자의 방패시로다.


5월 24일 (화) / 사무엘하 2 ~ 4 장

질문: 요압의 동생 아비새가 아브넬을 죽인 이유는 무엇인가?

답변:

 사무엘하 3장

  30. 요압과 그의 동생 아비새가 아브넬을 죽인 것은 그가 기브온 전쟁에서 자기 동생 아사헬을 죽인 까닭이었더라


5월 25일 (수) / 사무엘하 5 ~ 7 장

질문: 베레스웃사라는 말이 생긴 이유는 무엇인가?

답변:

 사무엘하 6장

  6. 그들이 나곤의 타작 마당에 이르러서는 소들이 뛰므로 웃사가 손을 들어 하나님의 궤를 붙들었더니

  7. 여호와 하나님이 웃사가 잘못함으로 말미암아 진노하사 그를 그 곳에서 치시니 그가 거기 하나님의 궤 곁에서 죽으니라

  8. 여호와께서 웃사를 치시므로 다윗이 분하여 그곳을 베레스웃사라 부르니 그 이름이 오늘까지 이르니라


∴ 기럇 - 여아림에서 다윗의 도시로 계약의 궤를 옮겨 오려고 할 때, 웃사가 그 궤를 경외심없이 다룬 것 때문에 여호와께서 그를 쳐서 죽게 하신 후 나곤(기돈)의 타작마당에 붙여진 이름


5월 26일 (목) / 역대상 11 ~ 13 장

질문: 삽십명의 우두머리창을 들어 한꺼번에 300명을 죽인 사람은 누구인가?

답변:

 역대상 11장

  11. 다윗에게 있는 용사의 수효가 이러하니라 학몬 사람의 아들 야소브암삼십 명의 우두머리라 그가 창을 들어 한꺼번에 삼백 명을 죽였고


5월 27일 (금) / 역대상 14 ~ 15 장, 시편 8 편

질문: 여호와의 언약궤가 들어올 때 다윗이 춤추며 뛰노는 것을 보고 그 모습을 업신여긴 사람은 누구인가?

답변:

 역대상 15장

  29. 여호와의 언약궤가 다윗 성으로 들어올 때에 사울의 딸 미갈이 창으로 내다보다가 다윗 왕이 춤추며 뛰노는 것을 보고 그 마음에 업신여겼더라


5월 28일 (토) / 시편 19, 29, 65편

질문: 많은 순금보다 더 사모하고 꿀과 송이 꿀보다 더 단 것은 무엇인가?

답변:

 시편 19편

  7. 여호와의 율법은 완전하여 영혼을 소성시키며 여호와의 증거는 확실하여 우둔한 자를 지혜롭게 하며

  8. 여호와의 교훈은 정직하여 마음을 기쁘게 하고 여호와의 계명은 순결하여 눈을 밝게 하시는도다

  9. 여호와를 경외하는 도는 정결하여 영원까지 이르고 여호와의 법도 진실하여 다의로우니

  10. 금 곧 많은 순금보다 더 사모할 것이며 꿀과 송이꿀보다 더 달도다


여호와의 율법, 여호와의 증거, 여호와의 교훈, 여호와의 계명, 여호와를 경외하는 도, 여호와의 법

여섯 가지 명칭들 가운데 공통적으로 사용된 단어 "여호와"라는 하나님의 이름이 들어가 있으므로 이들이 지칭하는 것은

성경, 곧 하나님의 말씀인것을 알 수 있다.


5월 29일 (일) / 시편 68, 103, 108 편

질문: 여호와는 모압에 대해서 무엇이라고 말씀하시는가?

답변:

 시편 108편

  9. 모압은 내 목욕통이라 에돔에는 내 신발을 벗어 던질지며 블레셋 위에서 내가 외치리라 하셨도다

F/W은 네트워크 Packet중 Network Protocols의 TCP/IP Layer에서 IPPort 정보를 가지고 방어하는 개념을 가지고 있다.

1. 방화벽

 · 외부 네트워크(인터넷)로부터 내부 시스템을 보호

  - 문제 있는 트래픽이 들어오는 것을 제한(필터링)하는 일종의 라우터

 · 방화벽의 설치위치: 외부망과 내부망(사내망)의 연결통로에 설치

 · 구현방식: 대부분이 라우터로써, 통합 구현


2. 방화벽 수행 역할별 구분

 · 침입 차단(Firewall) 역할

  - IP주소 및 포트에 의거한 침입 차단 기능 수행

 · 침입방지(IPS) 역할

  - 다양한 위협에 대처하기 위해, 수 많은 다기능 침입방지 기능들이 추가적으로 수행됨

 · 가상사설망(VPN) 역할

  - 정보의 비밀성 및 무결성에 촛점을 두고 수행


3. 방화벽의 주요기능

 · 접근제어 (Access Control)

  - 프록시(Proxy)를 통한 다양한 접근통제

   · 다수를 대신하여 일을 할 수 있는 제한된 서버 등 만을 허용

   · 네트워크 외부로부터 내부 위치를 감추는 등의 효과를 줌

  - 규칙 집합(차단, 허용 정책)에 의해 접근제어가 정의되어짐

   · 허용: 차단, 허용 동시에 있을 때, 우선순위가 차단보다 높음

   · 차단: 차단은 허용보다 우선적으로 적용됨


 · 로깅 및 감사추적(Logging and Auditing)

  - 사전 보안공격 시도 발견

  - 보안 사고에 대한 책임 추적성 확보 등


4. 방화벽 구현 종류

 · 구성형태에 따른 구분

  - Packet Filtering 방식

   · 라우터 등을 이용하여 패킷을 선별적으로 차단, 통과

   · 특정 판단 기준에 의해 특정 패킷을 폐기

  - Application Gateway 방식

   · 라우터 기능(ID Forwarding)을 수행하지 않음

   · 프록시 서버, 베스천 호스트에 의한 방화벽 등

   · 성능 문제로 인해 현재 널리 사용되지 않음

    ·· 트랜스포트 계층 상의 서비스 마다 프록시 서버가 존재해야 하는 등 유연성 부족

  - Circuit Gateway 방식

  - Hybrid 방식


 · 구축 유형에 따른 구분

  - 네트워크 레벨(Network Level)의 방화벽 시스템

  - 응용 레벨(Application Level)의 방화벽 시스템




2. 웹 방화벽의 개념과 원리

 웹 방화벽(Web Application Firewall)을 알기 위해서는 먼저 Web Application에 대해 알아야 한다.  Web Application은 우리 생활에서 늘 접하는 것이라고 할 수 있다. 인터넷을 통해서 우리들이 사용하는 홈페이지나 대부분의 서비스들이 Web Application 이라고 생각하면 된다.

사용자들이 사용하는 웹 사이트의 구조는 보통 아래와 같다.

 


그림 1 Web Application 전형적인 아키텍처

 

 웹 공격의 대부분은 Web Application을 구축할 때 생겨나는 취약점을 이용해서 Web Server를 공격하거나 DB 내용을 악용하는 방법이 대부분이다. 공격자는 HTTP Request에 특정 공격코드 또는 특정 Web Application만이 가지고 있는 취약점을 우회는 코드를 삽입하여 Web Server에 전송하게 된다. 결국 Web Application은 의도하지 않은 동작을 하게 되고, 그 결과를 HTTP Reply 통해 공격자게 다양한 정보들을 전송하게 되는 것이다.

웹 방화벽에서 Web Server쪽으로 전송되는 모든 HTTP Request Packet을 검사하여 Web Application에게 의도하지 않은 내용들은 전송되지 못하도록 하는 역할을 한다. 또한 Web Server에서 통과하는 HTTP Reply Packet 내용을 감시하여 특정 정보의 유출을 막는 역할도 하게 된다.

웹 방화벽에서 Web Server쪽으로 HTTP Request/Reply Packet을 검사한다고 했는데, 이것은 어떤 방법으로 가능한지 살펴 보겠다. 중간에서 Packet을 검사하는 원리는 Proxy Server의 원리에서 가지고 온 것이다. Proxy Server Client Server간의 통신을 중계하고 Relay 하는 역할을 한다.

웹 방화벽의 원리란 웹 서버로 들어오고 나가는 모든 Packet Proxy 원리를 적용하여 Packet의 내용을 검사하고 차단 하는 것이다.

 


그림 2 Proxy Server Relay


 

3.    다른 보안 시스템과의 차이점

웹 방화벽(Web Application Firewall)이 대두되기 전에는 F/W(Fire Wall), IDS(Intrusion Detection System), IPS(Intrusion Prevention system) 가 네트워크 보안을 책임 지고 있었다. 그러나 네트워크 보안제품의 한계로 인한 각종 침해사고가 발생하면서 웹 해킹을 전담으로 차단하는 웹 방화벽에 대해 이슈화 되기 시작하였다.

웹 방화벽은 기존의 네트워크 보안 제품(F/W, IDS, IPS)들과 어떠한 차이점이 있는지 알아보자.


그림 3 Simple Network/Application Layer

 

F/W은 네트워크 Packet Network Protocols TCP/IP Layer에서 IP Port 정보를 가지고 방어를 하는 개념을 가지고 있다. IDS, IPS Network Protocol에서 Application Protocols Packet 내용을 문자열 비교에 의해 침입시도를 감시하고 차단하는 역할을 한다. 웹 방화벽은 Application Protocols 중에 HTTP의 내용만을 문자열 비교에 의해 침입시도를 감시하고 차단하는 역할을 한다.

얼핏 보면 IDS, IPS, 웹 방화벽은 그다지 큰 차이점을 찾아 보기 힘들다. 다른 점이라면  문자열을 비교할 때, 비교하는 DATA의 종류가 다르다는 것이 가장 큰 차이점이다.

IDS, IPS에서 검사하는 문자열은 Application Protocols 에 쌓여 있는(encapsulation) 상태의 DATA이고, 웹 방화벽에서는 Application 에서 직접 사용하게 되는 풀려진(Demultiplexing) 상태의 DATA 문자열 비교를 하게 되는 것이다.

이러한 차이는 Application Protocols에서 암호화된 DATA IDS, IPS에서는 기존의 문자열 비교를 통해서는 침입패턴들을 검출해 낼 수 없다. 하지만 웹 방화벽에서는 이미 하위 Layer에서 복호화를 마친 DATA로 문자열 비교를 하기 때문에 침입패턴을 검출해 낼 수 있게 되는 것이다.

또한 웹 방화벽은 HTTP 프로토콜만을 감시하기 때문에 단순한 문자열 비교만을 이용한 침입패턴 탐지가 아닌 HTTP의 프로토콜 속성값들을 통해서 효율적인 방어를 할 수 있다.


 

4.    웹 방화벽의 주요 기능

 

 웹 방화벽은 HTTP Request/Response 메시지 내용을 분석, Positive 정책과 Negative 정책을 혼용하여 탐지 기능을 수행하게 된다. 먼저 Request 메시지를 이용한 탐지 기능을 알아보자.

가장 큰 특징이라고 할 수 있는 것은 URL 단위의 탐지 기능이다. 해당 사이트는 서비스를 제공할 URL Positive 정책으로 설정하면, 등록된 URL외의 다른 URL을 사용자가 요청할 경우 탐지하여 요청거부 메시지를 보내는 것이다. 이러한 경우에는 악의적인 사용자가 정상적인 URL외의 다른 URL로 접근하는 것을 원천적으로 봉쇄할 수 있다.  Negative 정책에서는 정상적인 URL에서 악의적인 공격 패턴(XSS, SQL Injection, OS Command Injection )을 검출해 내는 문자열 비교정책을 추가할 수 있다.

Request Method(GET, POST, OPTION) 까지도 Positive 정책에 설정할 수 있다. 특정 URL에서만 사용하는 Cookie/Hidden 필드나 Parameter 값들을 설정하여 보다 정교한 탐지 기능을 제공하게 된다.

 

파일 업로드 제어기능과 파일 검사기능을 지원한다.

사용자들이 웹 서버로 업로드하는 파일에 대해 파일의 종류에 따라 업로드를 허용 또는 차단 여부를 지정할 수 있다. 업로드 파일의 내용을 검사하여 악의적인 공격 형태의 파일들은 파일 필터를 통해 업로드가 차단된다. 이러한 기능은 웹 사이트를 악용하려는 사용자로부터 안전하게 보호하는 역할을 한다.

앞의 탐지 기능이 Request 메시지를 이용한 것이라면, 이번에는 Response 메시지를 이용한 탐지 기능을 알아 보겠다.

가장 대표적인 기능은 바로 웹 서버의 에러 또는 오류 정보를 차단하여, 악의적인 사용자가 웹 서버에 대한 정보를 알 수 없게 하는 것이다. 그러나 요즘은 주요정보를 차단하는데 더 많이 이용되고 있다. 사용자의 주민번호, 핸드폰번호, 집 주소, E-mail 주소, 카드번호 등의 개인 정보들이 다른 사용자들에게 노출 되는 것을 방지하는 것이다.

 

부가적으로 웹 가속기능이나, SSL 가속기능, Cache 기능들을 지원한다.

웹 방화벽 탐지기술의 장점은 HTTP 프로토콜 속성값의 작은 단위까지도 디테일한 정책설정이 가능하다는 점이다. 웹 서비스 개발 시점에 미처 신경쓰지 못했던 보안상의 문제점들을 보완할 수 있어 웹 서비스를 보다 안전하게 사용자들에게 제공할 수 있다는 점이다..

서버

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class EchoServer {

	public EchoServer() {
		ServerSocket ss;
		try {

			// 1. 서버소켓 생성
			ss = new ServerSocket(3000);
			System.out.println("서버 구동됨");

			// 2. 클라이언트의 접속을 기다림
			// 서버소켓은 클라이언트의 연결요청이 접수되면
			// 해당 클라이언트의 소켓과 송수신할 수 있는 소켓을 생성
			// 그리고 해당 소켓을 이용해서 접속된 클라이언트의
			// ip 정보를 지니고 있는 inetAddress객체를 얻을 수 있다.
			// accept() 메소드는 클라이언트의 연결요청이 있을 때까지 대기
			// block method이다.
			Socket s = ss.accept();
			System.out.println("클라이언트와 연결할 소켓생성됨");

			// 접속한 클라이언트의 IP 정보 얻기
			InetAddress inetAddress = s.getInetAddress();
			String clientIp = inetAddress.getHostAddress();
			System.out.println("[" + clientIp + "] 가 접속됨");
			
			// 3. 소켓으로부터 inputStream과 outputStream 얻기
			InputStream is = s.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			OutputStream os = s.getOutputStream();
			OutputStreamWriter osw = new OutputStreamWriter(os);
			BufferedWriter bw = new BufferedWriter(osw);

			// 4. clinet가 전송한 메세지 읽기
			String message = br.readLine();
			System.out.println("[메세지]" + message);

			// 5. clinet로 메시지 전송하기
			bw.write("[" + clientIp + "] 님 환영합니다. \n");
			bw.flush();

		} catch (IOException e) {
			// 서버소켓 생성시 지정된 port가 다른 프로그램에서
			// 사용 중일 때 예외발생한다.
			System.out.println("해당 port는 사용 중 입니다.");
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		new EchoServer();
	}
}


클라이언트

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class EchoClient {
	public EchoClient() {

		Socket s;
		try {
			// 1. 서버와 통신할 소켓 생성
			// 연결한 서버의 ip와 port번호를 지정한다.
			// 소켓을 생성하는 순간 해당 ip의 port번호로 연결을 요청한다.
			s = new Socket("localhost", 3000);

			// 2. 소켓으로부터 inputStream과 outputStream 얻기

			OutputStream os = s.getOutputStream();
			InputStream is = s.getInputStream();
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
			BufferedReader br = new BufferedReader(new InputStreamReader(is));

			// 3. 서버에 메세지 전송하기
			bw.write("반갑습니다. 클라이언트 입니다.\n");
			bw.flush();

			// 4. 서버가 보낸 메세지 읽기
			String message = br.readLine();
			System.out.println("[서버가 보낸 메세지]" + message);
		} catch (UnknownHostException e) {
			// ip에 해당하는 서버를 찾을 수 없을 경우
			System.out.println("서버를 찾을 수 없습니다.");
			e.printStackTrace();
		} catch (IOException e) {
			// 해당 port번호에 어떤 서비스도 존재하지 않는 경우
			System.out.println("사용되지 않는 port번호입니다.");
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		new EchoClient();
	}
}


소켓 연결

import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; public class ServerSocketEx { public static void main(String[] args) { // 서버 소켓 선언 ServerSocket ss; try { // 서버 소켓 생성 ss = new ServerSocket(3000); while (true) { Socket s; try { s = ss.accept(); // <접속 IP 확인 작업> // InetAddress 클래스는 IP주소를 객체화 InetAddress inetaddress = s.getInetAddress(); // getAddress()는 InetAddress 객체의 실제 IP 주소를 바이트 배열로 리턴 String returnIpAddress = inetaddress.getHostAddress(); System.out.println(returnIpAddress + " 접속"); } catch (IOException e) { e.printStackTrace(); } } // end while } catch (IOException e1) { e1.printStackTrace(); } } }

import java.io.IOException; import java.net.Socket; public class SocketEx { public static void main(String[] args) { try { // 소켓 선언 및 생성 // Socket (String host, int port) // host와 port를 이용하여 Socket 객체를 생성 Socket s = new Socket("localhost", 3000); } catch (IOException e) { e.printStackTrace(); } } }


5월 16일 (월) / 사무엘상 18 ~ 20장
질문: 다윗이 골리앗을 죽이고 돌아 올 때 여인들이 한 말은 무엇인가?
답변:
 사무엘상 18장

  6. 무리가 돌아올 때 곧 다윗이 블레셋 사람을 죽이고 돌아올 때에 여인들이 이스라엘 모든 성읍에서 나와서 노래하며 춤추며 소고와 경쇠를 가지고 왕 사울을 환영하는데

  7. 여인들이 뛰놀며 노래하여 이르되 사울이 죽인 자는 천천이요 다윗은 만만이로다 한지라


5월 17일 (화) / 사무엘상 21장, 시편 56, 59편
질문: 다윗이 아히멜렉에게 도움을 받을 때 그곳에 있었던 사울의 목자장은 누구인가?
답변:

 사무엘상 21장

  7. 그 날에 사울의 신하 한 사람이 여호와 앞에 머물러 있었는데 그는 도엑이라 이름하는 에돔사람이요 사울의 목자장이었더라


5월 18일 (수) / 사무엘상 22장, 시편 34, 52편
질문: 여호와는 어떤 자를 가까이 하신다고 했는가?
답변:
 시편 34편

  18. 여호와는 마음이 상한 자가까이 하시고 충심으로 통회하는 자를 구원하시는도다


5월 19일 (목) / 사무엘상 23 ~ 24장, 시편 63편
질문: 다윗이 사울의 옷자락만 베고 그를 죽이지 않은 이유는 무엇인가?
답변:

 사무엘상 24장

  5. 그리 한 후에 사울의 옷자락을 벰으로 말미암아 다윗의 마음이 찔려

  6. 자기 사람들에게 이르되 내가 손을 들어 여호와의 기름 부음을 받은 내 주를 치는 것은 여호와께서 금하시는 것이니 그는 여호와의 기름 부음을 받은 자가 됨이니라 하고


5월 20일 (금) / 시편 54, 57, 142편
질문: 다윗은 하나님께서 자신을 어디에서 이끌어 내사 주의 이름을 감사하게 하소서라고 말하는가?

답변:

 시편 142편

  7. 내 영혼을 에서 이끌어 내사 주의 이름을 감사하게 하소서 주께서 나에게 갚아 주시리니 의인들이 나를 두드리이다


5월 21일 (토) / 사무엘상 25 ~ 27장
질문: 나발의 아내지혜롭게 행동했던 여인은 누구인가?

답변:

 사무엘상 25장

  14. 하인들 가운데 하나가 나발의 아내 아비가일에게 말하여 이르되 다윗이 우리 주인에게 문안하러 광야에서 전령들을 보냈거늘 주인이 그들을 모욕하였나이다.

  32. 다윗이 아비가일에게 이르되 오늘 너를 보내어 나를 영접하게 하신 이스라엘의 하나님 여호와를 찬송할지로다

  33. 또 네 지혜를 칭찬할지며 또 네게 복이 있을지로다 오늘 내가 피를 흘릴 것과 친히 복수하는 것을 네가 막았느니라


5월 22일 (일) / 사무엘상 28 ~ 30장

질문: 다윗과 함께 있었던 아비멜렉의 아들 제사장은 누구인가?

답변:

 사무엘상 30장

  7. 다윗이 아히멜렉의 아들 제사장 아비아달에게 이르되 원하건대 에봇을 내게로 가져오라 아비아달이 에봇을 다윗에게로 가져가매

+ Recent posts