2016년 8월 31일 수요일

[개인정보보호] ISO 27001

도입 배경


기업에게 돌이킬 수 없는 경제적 손실과 기업 이미지를 손상을 초래하는 정보보안사고가 확산됨에 따라 체계적인 정보 관리의 필요성이 높아지고 있다.

ISO 27001 정보보안경영시스템은 기업의 정보자산과 고객정보의 보호 및 정보의 이용가치 제고를 통한 기업경쟁력 향상의 지름길로, 시스템 표준을 통한 정보의 체계적이고 지속적인 관리를 위한 해법을 제시하고 있다.

ISO 27001 인증제도


ISO 27001 이란?

ISO 27001은 정보보안 경영시스템(ISMS: Information Security Management System)에 대한 요구사항을 규정한 국제표준으로 PDCA 관리모델에 따라 ISMS 시스템을 구축, 실행, 유지 및 개선하도록 요구하고 있다.

  • Plan: ISMS 설립
    ISMS정책, 목적, 프로세스, 위험을 관리하여 조직의 전체적인 정책 및 목적에 따른 결과를 산출하도록 정보 보안을 개선하는 적절한 절차를 수립
  • DO: ISMS 실행 및 운영
    ISMS정책과 통제, 프로세스와 절차 및 운영
  • Check: ISMS 감시 및 검토
    ISMS정책, 목적, 실질적인 경험을 평가 및 측정하고 검토하기 위하여 관리에 대한 결과를 보고
  • Act: ISMS유지 및 개선
    ISMS의 지속적인 개선을 위한 내부 ISMS감사와 검토 또는 다른 관련 정보를 기반으로 시정이 가능하고 예방적인 행동들을 선택

ISO 27001 통제 항목

- 보안정책                      
- 정보 보안의 조직           
- 자산 관리
- 인적 자원 보안
- 물리적, 환경적 보안
- 의사소통 및 운영관리
- 접근 통제
- 정보시스템 획득, 개발 및 유지
- 정보 보안 사건 관리
- 업무 연속성 관리
- 준거성

인증 취득의 효과

  • 조직의 필수적인 정보 자산의 보호
  • 대외 경쟁력 유지 및 법규 준수
  • 정보에 대한 위험의 체계적인 관리
  • 낮은 수준의 기술적 보안의 한계를 극복
  • 비즈니스의 지속가능성 보장

[출처]

https://www.ksa.or.kr/iso/system/field/isoiec/

2016년 8월 30일 화요일

[개인정보보호] ISMS

개요


기업(조직)이 각종 위협으로부터 주요 정보자산을 보호하기 위해 수립 관리 운영하는 종합적인 체계(정보보호 관리체계)의 적합성에 대해 인증을 부여하는 제도

목적

  • 정보자산의 안전, 신뢰성 향상
  • 정보보호관리에 대한 인식 제고
  • 국제적 신뢰도 향상
  • 정보보호서비스 산업의 활성화

법적근거

  • "정보통신망 이용촉진 및 정보보호 등에 관한 법률" 제47조
  • "정보통신망 이용촉진 및 정보보호 등에 관한 법률" 제50조
  • 정보보호 관리체계 인증 등에 관한 고시 (미래창조과학부고시 제2013-36호)

인증대상

  • (ISP) 전기통신사업법의 전기통신사업자로 전국적으로 정보통신망 서비스를 제공하는 사업자
  • (IDC) 타인의 정보통신서비스 제공을 위하여 집적된 정보통신시설을 운영 관리하는 사업자
  • (정보통신서비스제공자) 정보통신서비스매출액 100억 또는 이용자 수 100만명 이상인 사업자
※ 의무대상자 미인증 시 3.000만원 이하의 과태료 (정보통신망법 제76조 근거)

인증제도의 특징

  • 국내 실정에 적합한 정보보호관리 모델 제시
  • 공신력 있는 정보보호 전문기관(KISA)에 의한 심사 및 인증
  • 국내 최고의 분야별 전문가들에 의한 인증 심사
  • 국내 정보보호관련 법제도 반영

인증심사 종류


  • 최초심사: 정보보호관리체계 인증 취윽을 위한 심사
  • 사후심사: 정보보호관리체계를 지속적으로 유지하고 있는지에 대한 심사(연 1회 이상)
  • 갱신심사: 유효기간(3년) 만료일 이전에 유효기간의 연장을 목적으로 하는 심사
※ 인증을 받은 정보보호 관리체계 범위 내에서 중대한 변경이 발생한 경우 최초심사 수행

인증심사기준


ISMS 인증심사 기준은 정보보호 5단계 관리과정 요구사항 12개 통제사항, 정보보호대책 13개 분야 92개 통제사항 총 104개 통제사항으로 구성

※ 2013년 기준 항목 수 변경 : 신규기준(14개), 통합 또는 변경기준(128개 -> 90개), 삭제기준(9개)

정보보호관리과정 요구사항

ISMS는 정보보호정책 수립 및 범위설정, 경영진 책임 및 조직 구성, 위험관리, 정보보호대책 구현, 사후관리의 5단계 과정을 거쳐 수립, 운영, 관리 과정은 일회적인 단계가 아니라 지속적으로 유지 관리되어야 함

그림1 ISMS 수립 프로세스
출처: https://isms.kisa.or.kr/kor/intro/intro02.jsp



정보보호대책 요구사항


정보보호대책은 정보보호에 관련된 위험을 통제하기 위한 요구사항으로 13개 통제분야, 92개 통제사항으로 구성


[출처]

https://isms.kisa.or.kr/kor/intro/intro01.jsp
https://isms.kisa.or.kr/kor/intro/intro02.jsp

2016년 8월 29일 월요일

[Snorby] Installing Snorby for Snort

Snorby


Snorby는 루비 스크립트로 작성된 웹 응용 프로그램이다. 바이너리 출력 형식으로 이벤트를 기록한다. Snorby는 침입탐지 시스템인 Snort, Suricata, Sagan을 통합한 프로그램이다. 개인 및 기업 모두 사용을 위한 무료, 오픈 소스를 제공하여 네트워크 모니터링 이용에 높은 경쟁력을 만들 수 있다.

Snorby 설치


테스트 환경
CentOS 6.5

Snorby를 설치 하기 전에 Ruby, Rails, ImageMagick, Wkhtmltopdf가 필요하다.
  • Ruby: 동적 객체 지향 스크립트 프로그래밍 언어
  • Rails: 웹 애플리케이션 개발을 위한 프레임워크
  • ImageMagick: 이미지를 새로 만들거나 수정하는데 사용되는 커맨드라인 기반의 오픈소스 소프트웨어
  • Wkhtmltopdf: HTML 문서를 PDF로 변환해주는 프로그램
# yum -y groupinstall "Development Tools"

# yum -y install  openssl-devel readline-devel libxml2-devel libxslt-devel mysql mysql-devel mysql-libs mysql-server urw-fonts libX11-devel libXext-devel qconf fontconfig-devel libXrender-devel unzip

ImageMagick

# cd /tmp
# wget wget ftp://ftp.fifi.org/pub/ImageMagick/ImageMagick-6.9.5-8.tar.gz
# tar -xvf ImageMagick-6.9.5-8.tar.gz
# cd ImageMagick-6.9.5-8
# ./configure
# make
# make install
# ldconfig /usr/local/lib

Wkhtmltopdf

# yum -y install xz urw-fonts libXext openssl-devel libXrender
# wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm
# rpm -Uvh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm


rpm 설치 도중 에러가 발생할 수 있다.

xorg-x11-fonts-Type1, xorg-x11-fonts-75dpi 패키지가 없어서 나타나는 문제이다. 
yum을 이용해서 설치를 하면 해결된다.

# yum -y install xorg-x11-fonts-Type1
# yum -y install xorg-x11-fonts-75dpi 

다시 설치를 한후 테스트를 진행한다.


위와 같은 결과가 나타나면 설치가 성공적으로 이루어진것이다.

Ruby

# yum -y install libxslt-devel libxml2-devel gdbm-devel libffi-devel zlib-devel openssl-devel libyaml-devel readline-devel curl-devel openssl-devel pcre-devel git memcached-devel valgrind-devel mysql-devel ImageMagick-devel


패키지 설치 도중 문제가 발생하였다. yum-plugin-fastestmirror가 필요해서 발생한 문제이다. 

# yum -y install yum-install-fastestmirror 

yum-install-fastestmirror 설치 후 다시 패키지를 설치한다.


# yum downgrade libyaml-0.1.3-4.el6_6

버전을 낮쳐주고, 다시 패키지 설치를 진행한다.

루비 설치를 쉽게 할 수 있도록 도와주는 서비스로 RVM(Ruby Version Manager)이라는 것이 있다. 이 RVM은 루비의 설치 과정을 간소화시켜주는 동시에, 루비의 여러 버전을 동시에 관리하는 것이 가능하도록 도와주는 프로그램이다. 

다음 링크에 접속한다.

https://rvm.io



위 그림과 같이, ‘Install RVM:’ 하단에 있는 명령어를 ‘$’ 다음 부분부터 맨 끝까지 드래그하여 블록 지정 후 복사한 후 터미널에 입력한다.

# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# \curl -sSL https://get.rvm.io | bash -s stable 


RVM 설치가 완료되었다.

# source /etc/profile.d/rvm.sh

RVM 환경을 적용한다.

# rvm install 2.2.2
# rvm use 2.2.2

버전이 낮으면 설치가 안될수도 있기에 Ruby 2.2.2 버전을 설치하였다.


위와 같이 나오면 제대로 설치된 것이다.

# rvm rubygems current

# gem install rails


위와 같이 나오면 제대로 설치된 것이다.

Snorby

# yum -y install httpd
# service httpd start
# chkconfig --add httpd
# chkconfig httpd on

# gem install bundler

# cd /var/www/html
# mkdir snorby
# cd snorby
# wget -O snorby.zip --no-check-certificate https://github.com/Snorby/snorby/archive/master.zip
# unzip snorby.zip
# mv snorby-master/* /var/www/html/snorby

Create a database for Snorby

# mysql -u root -p
Enter password:
mysql > create database snorby;
mysql > grant all privileges on snorby.* to snorby@localhost identified by 'snorby';
mysql > flush privileges;
mysql > exit

# cp config/database.yml.example config/database.yml
# vi config/database.yml



Gemfile

# vi Gemfile

gem 'rake', '0.9.2' 를 gem 'rake', '> 0.9.2' 으로 변경한다.

gem 'thin'을 추가한다.

gem 'thin'을 주석 처리 한다.

Gemfile.lock

rake (0.9.2)를 rake (0.9.2.2)로 변경한다.

Install Snorby

# cp config/snorby_config.yml.example config/snorby_config.yml

# yum -y install java-1.6.0-openjdk-devel java-1.6.0-openjdk
# yum -y install httpd-devel apr-devel apr-util-devel
# bundle install
# gem update --system
# RAILS_ENV=production bundle exec rake snorby:setup

Test the installation:

# rails server thin -e production

실행 후 브라우저에서 http:// 해당 IP :3000 에 접속하면 아래와 같은 화면이 나타난다.


Change the ownership

# chown -R apache:apache /var/www/html/snorby

Modify the barnyard2.conf

# vi /etc/snort/barnyard2.conf


Modify iptables

# iptables -I INPUT -p tcp --dport 80 -m state --state=NEW,ESTABLISHED,RELATED -j ACCEPT
# /sbin/service iptables save

Snorby Testing

# rails server thin -e production 실행 시





No time_zone specified in snorby_config.yml; detected time_zone: UTC가 나타났다.

# vi /var/www/html/snorby/config/snorby_config.yml 



time_zone: 'Asia/Seoul' 을 추가해준다.


No time_zone specified in snorby_config.yml; detected time_zone: UTC 가 나타나지 않는다.

# rails server thin -e production

# snort -c /etc/snort/snort.conf

# barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f snort.u2

snorby, snort, barnyard2 를 모두 실행시킨다.


http://해당 IP:3000 으로 들어가면 snorby 접속 화면이 나온다. 아래의 계정 정보를 이용하여 로그인을 한다.

Email: snorby@example.com
Password: snorby 


다른 호스트에서 ping을 보내게 되면 위와 같은 화면을 확인할 수 있다.

Snoby에서 패킷 정보를 수집하는 도중 다른 Snorby 페이지 view로 이동시 아래와 같은 에러를 확인할 수 있다. 


# vi /var/www/html/snorby/log/production.log


로그를 확인해보면 Cannot allocate memory를 할 수 없다는 구문을 확인할 수 있다.

Swap 메모리를 할당하지 않을 경우 위와 같은 에러가 발생할 수 있다.
Swap 할당을 하고 다시 Snorby를 실행하면, 패킷 수집 중에도 다른 페이지로 이동할 수 있다.

[ 출처 ]

https://www.packet6.com/installing-snorby-for-snort/

2016년 8월 28일 일요일

[Snort] Web Base Snort

BASE(Basic Analysis and Security Engine)



데이터베이스에 저장한 Snort 탐지 내역을 쿼리하고 분석할 수 있도록 웹 인터페이스를 제공하는 공개용 분석 툴이다. 

BASE 설치


BASE를 사용하기 위해서는 먼저 APM(Apache, PHP, Mysql) 설치를 해야 한다.

# yum install libjpeg* libpng* freetype* gd-*

# yum install httpd

# yum install mysql mysql-server mysql-devel

# yum install php php-mysql

위와 같이 패키지를 설치한다.







패키지 설치가 되었는지 다시 확인한다.

# iptables -F

방화벽을 해제한다.

이제 Apache 환경설정을 해주어야한다.

# vi /etc/httpd/conf/httpd.conf


nobody로 변경을 해준다.


현재는 도메인이 없으므로 해당 서버 IP를 추가한다.

# service httpd restart 



서버를 재시작한 후 브라우저에 해당 IP에 접속하면 Apache Test Page가 나타날 것이다.

이제 PHP 환경 설정을 진행해주어야한다.


DirectoryIndex index.html index.php


AddType application/x-httpd-php .php .html .htm .Inc
AddType application/x-httpd-php-source .phps

설정이 완료되면,

#vi /var/www/html/phpinfo.php 

<?php
phpinfo();
?>

위와 같이 입력 후 저장을 한다.


http://해당 IP/phpinfo.php 입력 시 위와 같은 화면이 나타나면 php가 잘 구동 되는 것이다.

Snort가 기본적으로 갖고 있는 출력 기능을 Snort 대신 출력해주는 도구인 barnyard 설치가 필요하다.

# git clone https://github.com/firnsy/barnyard2.git

git을 이용해 먼저 barnyard2 파일을 다운받는다. 
git 패키지가 없을 경우 yum install git을 이용해 다운 받은 후 진행한다.

# cd barnyard2
# yum install libtool autoconf
# ./autogen.sh 
# ./configure --with-mysql (32bit)
# ./configure --with-mysql-libraries=/usr/lib64 (64bit)
# make
# make install

barnyard2 구동 시  waldo 파일이 필요하다.

touch /var/log/snort/barnyard2.waldo
# cp etc/barnyard2.conf /etc/snort/barnyard2.conf 
# vi /etc/snort/barnyard2.conf

user=root
password=해당 패스워드
dbname=snort
host=localhost

# vi /etc/snort/snort.conf


# vi /etc/snort/rules/local.rules


barnyard2에 대한 설정은 여기까지다.

이제 base에 대해 설치 후 설정을 진행해야된다.

# wget https://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz
# tar zxvf base-1.4.5.tar.gz -C /var/www/html
# mv /var/www/html/base-1.4.5 /var/www/html/base
# chown -R apache.apache /var/www/html/base

# vi /etc/php.ini

# service httpd restart

adodb 설치와 설정을 진행한다.

# wget https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-519-for-php5/adodb519.tar.gz
# tar zxvf adodb519.tar.gz -C /var/www/html
# chown -R apache.apache /var/www/html/adodb5

mysql에서 snort 데이터베이스를 생성해야 한다.

# mysql_secure_installation

mysql 계정의 패스워드 설정을 한다.


snort 테이블을 만든다.


create_mysql 파일을 snort 테이블에 복사한다.

이제 http://해당IP/base에 들어간다.


Config Writeable가 No로 표시되어있다. 설정 파일에 내용을 입력할 권한이 없다는 뜻이다.


base 파일의 권한을 확인한 후 write 할 수 있도록 777 권한을 준다.


Continue


ADODB 경로를 입력한 후 Continue


Continue


Admin User Name: admin
Password: 1234
Full Name: admin

Continue


Create BASE AG 클릭


step 5 클릭


설치가 완료되었다.

# vi /etc/snort/barnyard2.conf

log 파일이 저장 될 경로를 추가한다.

# snort -u snort -g snort -c /etc/snort/snort.conf -i eth0
# barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f snort.u2
snort 와 barnyard2 를 실행 시킨 후 다른 PC에서 ping 을 보낸다.



위와 같이 BASE 화면에 패킷 정보가 나타난다.

BASE 에서는 패킷 정보를 그래프로 확인할 수 있다.


Graph Alert Data를 누른 후 확인을 해보면 아래와 같은 에러 메시지가 나타난다.


아래와 같이 해결해야한다.

# yum install php-gd

# service httpd restart

# yum install php-pear

# pear install --force Image_Color

# pear install --force Image_Canvas

# pear install --force Image_ Graph

# vi /var/www/base/html/base_config.php


위와 같이 설정해준다.


Graph Alert Data에 들어가면 위와 같이 그래프로 설정할 수 있는 화면이 나타난다.