Note

랩미팅 첫 세미나 발표_201703 본문

Study/Cyber Security

랩미팅 첫 세미나 발표_201703

C.Prototype 2017. 3. 20. 17:07

연구실 들어와서 첫학기를 잘 보내고 두번째 학기가 시작되었다. 우리 연구실은, 석사나 박사 입학후 첫 학기에는 랩미팅때 세미나 발표를 하지 않아도 된다. 한학기 동안은 불소추 특권을 가지고 있는 것이라 할 수 있겠다. 하지만 어느덧 첫학기가 마무리 되었고 대통령은 탄핵되어 불소추 특권이 사라져 검찰 조사를 받으러 갈 예정이고 나는 주제 하나를 골라서 발표를 해야하는 상황이 되었다.

주제로 어떤걸 하면 모두가 재미있게 들을수 있을지 생각하다가 고른 주제가 SCADA system이 무엇인지에 대해 설명하고, 공격 가능한 루트 그리고 몇가지 간단한 sniffing simulation을 보여드렸다.


그럼 간단히 발표한 내용을 소개해 보도록 하겠다.


주제는 다음과 같이 거창하다. 하지만 내용은 안거창하다.



목차는 다음과 같다. 먼저 SCADA system이 무엇인지에 대해 간단히 설명하고, SCADA system에 대한 공격의 종류, 그리고 아주 간단한 data sniffing simulation을 수행해본다.



먼저 SCADA system이 무엇인지에 대해 살펴보자. SCADA system은 일단 Supervisory Control and Data Acquisition System의 약자로 필드에서 데이터를 모으고 그걸 통해 컨트롤을 하는 시스템이다. 산업체, 대규모 플랜트 시설등에서 많이 사용되고 있는 제어 시스템중 하나이다.



기본적으로 SCADA system의 구성은 다음과 같다. 먼저 필드에서 데이터를 긁어오는 RTU/PLC가 있고 이를 Communication network를 이용해 MTU로 전송한다. 전송된 데이터를 모으고 처리하여 사람과 기계가 서로의 말을 알아들을 수 있게 해주는 MMIS로 보내주는 과정이 SCADA system이 하는 일이다.



SCADA system은 처음에는 Monolithic의 형태를 가지고 있었다. 하나의 컴퓨터가 모든 필드와 연결되어 있고 모든 정보를 받아 혼자 처리하는 방식이다. 하나의 컴퓨터와 전체를 연결해야 하다보니, 규모가 엄청나게 클 수 밖에 없었다. 이 때는 통신규약으로 고유한 통신규약을 사용하였기에 타 기기와의 호환성 역시 문제가 많았다. 2세대 SCADA system은 Distributed 한 구조를 가지고 있었다. 이 때는 이제 여러대의 컴퓨터를 사용 각자의 일을 하도록 하고, Local Area Network를 이용해 이들을 묶어놓았다. 예를들어 컴퓨터 1번은 온도에 대한 일을 수행하고, 컴퓨터 2는 압력에 대한 일을 수행하도록 한 것이다. 따라서 설비의 규모는 많이 축소되었고 더 빠르게 일을 처리할 수 있었다. 3세대로 오면서는 형태는 2세대와 비슷하지만 WAN을 사용해 거리의 제약을 훨씬 덜받게 되었다. 이 때부터는 IEEE 802.XX와 같은 통신 표준규약이 사용되었다. 3세대에 와서야 표준화된 통신규약이 사용되었다고 하니 표준화된 통신규약이 좋은거구나라 생각할 수 있는데 이는 항상 옳은 말은 아니다. 표준화가 되었기에 Zero day 취약점이나 여러 문제점에 대해 공부하는 사람이 많아서 보안이 빠르게 이루어지는 장점이 있지만 반대로는 공격하는 사람이 많기도 한 것이기 때문이다. 

어쨌든, SCADA system은 다음의 발전순서를 따라 발전해 왔다.



이 슬라이드는 IT 산업에서의 보안과 SCADA system에서의 보안의 차이점을 표로 정리해 놓은 것이다.

간단히 SCADA system에 대해서 알아보았으니 다음으로는 SCADA system에 행해질 수 있는 공격이 어떤 것들이 있는지 알아보도록 하자.



이 그림은 '프로그램 리뷰' 항목에서 보여주었던 알 마인드를 이용해 그린 마인드 맵이다. 역시 개괄적으로 표현하기에 이쁜것 같다.

여튼, 공격유형은 크게 하드웨어에 대한 공격, 소프트웨어에 대한 공격 그리고 Communication stack에 대한 공격 세가지로 나뉜다.



먼저 하드웨어에 대한 공격을 알아보자. 하드웨어에 대한 공격의 예시로는 Backdoor나 Unauthenticated Access가 있다. Backdoor는 뉴스나 이런데서 많이 들어서 아마 익숙한 내용일 것이다. Vendor가 자신이 납품하는 기기에 Main program으로 직행할수 있는 샛길을 마련해 놓은것이다. 구글에 백도어를 물어봤을때 나온 기사내용을 보면 주로 중국계 회사 제품에서 이런 일들이 많이 일어났다고 한다. 이를 막기위해서는 신뢰성 높은 vendor한테 상품을 납품 받아야 한다. Unauthenticated Access는 승인되지 않은 사람이 시스템에 접근하는 문제점이다. 이런 문제는 보통 Access control을 철저히 함으로써 예방할 수 있다.



다음은 소프트웨어 어택이다. 대표적인 소프트웨어 어택의 종류로는 Buffer overflow와 SQL injection이 있다. Buffer overflow는 memory error를 이용해 공격자가 target program을 컨트롤 하고 실행하는 공격방식이다. 옆의 그림을 살펴보자. 까만색 바탕의 코드는 Buffer overflow가 일어날수 있는 코드이다. character array로 선언되어있는 buf array에 string을 copy해서 넣게되는데, 만약 15자리 이하의 글자를 넣게되면 buf안에 차곡차곡 쌓여 정상적으로 끝날것이다. 하지만 15자리를 초과하는 데이터가 들어오게되면 함수의 위쪽 영역을 침범해 비 정상적인 메모리 위치에서 함수가 종료되게 된다. 만일 그 위치에 공격자가 심은 프로그램이 있다면 프로그램이 동작하게 되고 문제가 발생하게 되는것이다. 


--추가 예정--

'Study > Cyber Security' 카테고리의 다른 글

ICS Cyber Attack 01_201701  (0) 2017.01.10
Comments