디지털 인질극, 랜섬웨어(Ransomware)의 개념 랜섬웨어는 몸값이라는 Ransom이라는 단어와 소프트웨어의 ware가 합쳐진 합성어로 "시스템을 잠그거나 데이터를 암호화하고 이를 인질로 돈 등을 요구하는 악성 프로그램"이다. 랜섬웨어는 최근에 등장한 것 같지만, 사실 최초의 등장은 1989년 조셉 팝(Joseph Popp)이 작성한 AIDS가 시작이다. 이토록 오래전에 등장했지만 그동안 랜섬웨어의 등장은 다른 악성코드처럼 활발하지 못했다. 왜냐하면 돈을 주고받는 행위는 결국 오프라인으로 만나거나, 계좌를 이체해야 하는 등. 잡히기 매우 쉽기 때문에 해커가 다른 방식으로 이득을 취하는 경우가 많았기 때문이다. 하지만, 비트코인(Bitcoin)이 등장하며 암호화폐는 해커들(정확히 말해서는 크래커들)사이..
SQL Injection는, OWSAP에서 매번 발표했을 때, 가장 위협적이고 가장 쉬운 방법이라고 거론이 될 정도로 어찌보면 기본이며, 꼭 알아야 할 해킹 기술이다. Injection은 주입이라는 뜻으로, 즉 직독하자면 SQL 언어를 외부에서 주입하여 해킹을 하는 기법을 뜻한다. 외부는 일반적으로 웹(Web)을 뜻하며, 아이디를 입력하는 란이라든지 뭔가 정보를 주고 받는 곳에서 예상치 못한 공격으로 사이트를 마비 시키거나, 데이터를 훔치거나 관리자 정보나 기타 유저들의 정보를 훔쳐볼 수 있다. SQL Injection은 OWASP에 꾸준히 1위를 유지하고 있으며, 최근 발표한 2017년 버전에도 여전히 1위를 지키고 있을 정도로 관심은 여전하다. - SQL Injection 외에도 허술한 인증 관리와 ..
시큐어 코딩이란, 말그대로 보안 코딩이다. 즉, 코딩을 할 때 보안에 대해서 문제가 되는 부분을 제거하거나 교체하는 방식으로 가장 간단히 처리하면서 효과적인 모습을 보여준다. 상당히 많은 개발자들이 스스로 나는 코딩을 잘해라고 말하지만, 시큐어 코딩을 하는 사람을 많이 보지 못했다. 머리속에 있는 것을 구현하는 것은 초중급이상만 되면 누구나 할 수 있는 것이다(사람마다 시간의 편차가 존재할 수 있지만...) 하지만, 시큐어 코딩(Secure Coding)이나 클린 코딩(Clean Coding)같은 다음 Level의 코딩 혹은 철학 없이는 고급 개발자로 절대 갈수가 없다. 그럼 시큐어 코딩이 왜 중요한가??? 첫 문장에 적었지만, 가장 간단히 처리하면서 효과적인 모습이기 때문인데 정의를 읽어보면 좀 더 쉽..
보안 운영체제(Secure OS) or 신뢰성 운영체제(Trusted OS) 개념 - 컴퓨터 운영체제 상에 내재된 보안상의 결함으로 인하여 발생할 수 있는 각종 해킹으로부터 시스템을 보호하기 위하여 기존의 운영체제 내에 보안 기능을 추가한 운영체제 - 보안계층을 파일 시스템과 디바이스, 프로세스에 대한 접근권한 결정이 이루어지는 운영체제의 커널 레벨로 낮춘 차세대 보안 솔루션 - 컴퓨터 사용자에 대한 식별 및 인증, 강제적 접근 통제, 임의적 접근 통제, 재사용 방지, 침입 탐지 등의 보안 기능 요소를 갖추어진 운영체제 1970년대 미 공군이 군사 군사 비밀들을 컴퓨터에서 처리되기 시작하면서 강화된 접근제어 기능인 다중등급 보안 기능이 부가된 보안 커널 연구를 한 것이 시초이고, 국내에서는 ETRI(한국..
암호화(Cryptography) 란? - 메세지의 내용이 불명확하도록 평문(Plain-text)를 재구성하여 암호화된 문장(Cipher-text)으로 만드는 과정- 무결성 및 기밀성 확보를 위하여 정보를 쉽게 해독되지 않는 형태로 변환하는 기술- 평문(Plain text)을 암호문(cipher text)으로 만드는 과정 영화, 이미테이션이라는 영화를 보면 독일과의 세계대전을 장면이 나오는데 독일의 암호를 해독하기 위해서 앨런 튜링이 고민을 하다가, 결국엔 "하이 히틀러~" 라는 나치 구호를 토대로 암호문을 해독하게 된다. 사실 암호화와 복호화라는 것이 컴퓨터로 수행되어 진다고, 어려워 할 필요는 없다. 좀 더 쉬운 예제를 뽑자면, 영화나 소설등에서 성경에 있는 몇장 몇절에 몇번째 단어들을 조합해서, 하나..
NAC(Network Access Control)의 개념 NAC(네트워크 접근 제어)를 쉽게 이해하자면, 방화벽(Firewall)과 반대의 개념이라고 생각하면 된다. 방화벽은 외부에서 내부로 접근하는 것을 통제하고, 보호하는 개념이라면 NAC는 내부 네트워크를 통제, 평가, 점검 등을 수행하여 보안에 이상이 없는지를 판단하고 이상이 없을 시 연결을 시켜주는 관리 기법이라고 생각하면 이해가 쉬울 것이다. 능동적으로 Endpoint를 점검 관리하여 접속 단말에 대한 보안 평가, 문제점, 정책을 준수(Compliance)하였는지 등을 지속적으로 모니터링 해준다 즉, 내부에 연결되어야 할 단말의 네트워크 보안 상태를 체크, 점검해주는 보안 관리자의 역할을 대신해주는 솔루션쯤으로 이해를 해도 될 것이다. NAC가..
악성코드(malicious code)의 개념 - 정보유출, 금전적 이익 등 악의적인 목적으로 작성되어 컴퓨터 사용자의 승인없이 컴퓨터에 침투하거나 설치되어 악성행위를 수행하는 프로그램- 악의적인 목적을 위해 작성된 실행 가능한 코드의 통칭으로 자기 복제 능력과 감염 대상 유무에 따라 바이러스, 웜, 트로이목마 등으로 분류 악성코드의 최근 트렌드 악성코드의 유형 1) 호스트 프로그램 의존형- 악성코드 독립적으로 실행 불가능- 정상적인 프로그램에 은닉하여 사용자가 인식하지 못하는 사이 실행 2) 호스트 프로그램 독립형- 악성코드 자체로 실행 가능한 실행코드로써 복제를 통한 전파 방법 사용- 운영체제에 독립적인 프로세스로 스케쥴되고 실행 호스트 프로그램 의존형 트랩도어(Trap door), 백도어(backdo..
외부 네트워크로부터 내부 네트워크로 침입하는 네트워크 패킷을 찾아 제어하는 기능을 가진 소프트웨어 또는 하드웨어이다. 일반적으로 내부 네트워크로 들어오는 모든 패킷이 지나가는 경로에 설치되며, 호스트의 IP, Port, 사용자 인증에 기반을 두고 외부 침입을 차단하는 역할을 한다. 허용되지 않는 사용자나 서비스에 대해 사용을 거부하여 내부 자원을 보호한다. 1. 침입탐지와 실시간 방어를 위한 솔루션, IPS의 개요 가. IPS(Intrusion Prevention System)의 개념 - 침입탐지 시스템의 오판(False Positive)와 탐지실패(False Negative)의 문제를 해결하기 위해 등장한 솔루션으로 정보관리 시스템 네트워크의 침입탐지와 동시에 실시간 방어가 가능한 보안 솔루션 나. I..
침입 탐지 시스템, 즉 IDS는 시스템에 대한 원치 않는 조작을 탐지한다. 전통적인 방화벽(Firewall)이 탐지할 수 없는 악의적인 네트워크 트래픽 및 컴퓨터 사용을 탐지하기 위해 필요하다. 이것은 취약한 서비스에 대한 네트워크 공격과 애플리케이션에서의 데이터 처리 공격(data driven attack), 그리고 권한 확대(privilege escalation) 및 로그인, 파일 접근, 악성 소프트웨어(Virus, Trojan 등)와 같은 호스트 기반 공격을 포함한다. IDS는 여러 개의 구성 요소로 이루어져 있다: 센서는 보안 이벤트를 발생시키며, 콘솔은 이벤트를 모니터하고 센서를 제어하거나 경계시키며(alert), 중앙 엔진은 센서에 의해 기록된 이벤트를 데이터베이스에 기록하거나, 시스템 규칙을..
방화벽이란, 대표적인 보안 시스템으로서 외부의 침입을 방어하기 위한 시스템이다. OS에서 기본적으로 제공을 하고 있기도 하고, 금융 시스템을 써봤으면, IT인이 아니더라도 많은 사람들이 그 의미와 사용법을 알고 있을 정도로 유명하다. 방화벽의 기본 역할은 신뢰 수준이 다른 네트워크 구간들 사이에 놓여서 신뢰 수준이 낮은 네트워크로부터 오는 해로운 트래픽이 신뢰 수준이 높은 네트워크로 오지 못하게 막는 것이다. 흔히 네트워크 관리자의 입장에서 높은 신뢰도를 갖는 구간은 내부 네트워크 구간이라 하고, 낮은 신뢰도를 갖는 구간을 인터넷 구간 또는 외부 네트워크 구간이라고 한다. 이 밖에도 외부에 서비스를 제공하는 서버들을 위한 DMZ 구간이 있으며 인터넷으로부터 내부 네트워크로의 침입을 막는 동시에 내부 네트..