Phase 3. 두번째 과제 (22/09/27 및 22/09/29 14:00 ~ 17:00)

지난 3개월간 참 다사다난했던 것 같습니다.
여러분의 노력 덕분에 다행히 회사는 정상화가 된 것 같습니다!

마지막으로는 그동안 어떤 문제가 있었으며,
어떤 조치를 취했으며,
그리고 앞으로 어떻게 해야하는지
최종적인 정리와 보고만이 남았습니다.

다행히 회사에서도 이번 사태를 예의 주의하고 있었으며
높으신 분들도 큰 관심을 가지고 있네요!

위기는 곧 기회!
발표보고라는 것이 참 부담되고 어려운 자리이긴 하지만
우리의 노고와 업적을 인정받을 수 있는 기회임과 동시에
회사 내부에 보안에 대한 경각심을 일깨우고 향후 지속적인 지원을
약속받을 수 있는 중요한 자리가 될겁니다.

지난 3개월간의 여정에 방점을 찍어봅시다!


이번 HCCC 침해사고에 대한 최종 보고 프리젠테이션을 준비하세요.
  1. 본 Phase 3-2단계는 상위 4개팀 “1) 목포대-매화, 2)조선대-고점에사람있어요, 3)전남대-정보보호119, 4)광주대-Tiger” 팀만 수행합니다.
  2. 지난 3개월간의 침해사고에 대한 사건 경위, 내용, 피해, 대응 및 후속조치 등 전반적인 내용에 걸친 발표 보고를 준비해주세요. 양식과 템플릿은 자유입니다.
  3. 총 발표시간은 30분, 질의응답 10분이며, 발표 일시 및 장소는 “22년 9월 29일 14-17시, 광주 국립 아시아 문화 전당 (ACC)” 입니다.
  4. 상위 4개팀은 반드시 본 발표경연에 참여하셔야 합니다.
  5. 발표자료는 9월 27일까지 사전에 제출해주셔야 합니다.
  • 발표자료 사전 제출기한: 2022년 9월 27일 화요일 오전 11시 59분.
  • 최종 발표 경연: 2022년 9월 29일 14-17시, 광주 국립 아시아 문화 전당 (ACC).

  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.


Phase 3. 첫번째 과제 (22/09/01 - 22/09/19)

이제 모든 흑막(?)이 어느정도 드러났습니다.
공격자가 무엇을 어떻게 하였는지 충분히 이해했습니다.

이제 중요한 것은 다시금 이러한 일이 발생하지 않도록 예방하는 것입니다.

이에 여러분은 HCCC의 보안 전문가로서 보안 시스템을 구성해야합니다.
그러나 당장은 보안 장치들을 도입할만한 예산과 시간이 부족하다는,
안타까운 소식을 회사로부터 전달받았습니다. 언제나 돈과 시간이 문제네요...

다행히 상황을 이해해주는, 서버 관리자가 안쓰는 서버 하나를 빌려주면서
이거로 어떻게든 할 수 있지 않을까 라고 의견을 제시합니다.

네, 각종 네트워크 기능들을 소프트웨어 가상화 형태로 작동시키는 개념인
네트워크 기능 가상화 (Network Function Virtualization, NFV)
를 통해 보안 시스템을 구성해보자 하는군요.

뭐 좋습니다. 이 없으면 잇몸인거죠!



자, NFV장치는 위 그림처럼 회사망 입구쪽에 배치시켰습니다.
앞으로 이번과 같은 'HCCC침해사고'가 다시 발생하지 않도록

* 웹 제작자를 믿을 수 없으니 -> 웹 공격에 대한 방어
* 혹시 남아 있는 감염 PC로 부터 보호하기 위해 -> 악성코드 외부통신에 대한 방어
* 우리의 자산을 보호해야하니 -> 서버의 접속에 대한 방어

들이 NFV기반 보안 모듈에서 이루어지도록 환경구성을 해봅시다.


향후 'HCCC침해사고'가 다시는 발생하지 않도록 NFV장치를 구성해보세요!
  1. 네트워크 기능 가상화(Network Function Virtualization, NFV) 서버를 이용해 보안 환경 구성을 해봅시다.
  2. NFV장치는 일반 x86_64(AMD64), 우분투 20.04 환경(Phase 1의 환경과 동일)에서 작동되며, 네트워크 인터페이스는 외부망 방향으로 eth0, 내부망 방향으로 eth1이 각각 연결되어있다고 가정합니다.
  3. 각 보안 서비스들은 ‘Docker’를 이용해 운영되어야 하며, Docker는 아래에 첨부된 쉘스크립트를 이용해 설치합니다.
  4. 이 환경에서 필요한 도커 이미지의 다운로드, 정책(Policy) 설정, 네트워크 설정 등 이번 HCCC 침해 사건과 관련한 공격을 막기 위한 환경구성을 자동화해주는 스크립트를 작성해주세요.
  5. 예를 들어, 스크립트는 ‘iptables의 도커 이미지를 다운 받아 실행하고, 그 컨테이너에 공격 IP를 차단하는 정책의 설치’등과 같이 일련의 동작이 포함되어야 합니다.
  6. 필요하다면 Docker compose, Kubernetes 등의 기타 도커 utility들의 도입도 가능합니다. 단, 이것들을 설치하기 위한 명령어 역시 스크립트에 포함되어야 합니다.
  • 기대 결과물: (필수) 환경 구성 전반의 내용을 담은 쉘 또는 파이썬 스크립트 파일. (선택) 이에 대한 설명 또는 안내를 담은 Readme 파일.
    • Vanilla 환경의 시스템으로부터 본 스크립트의 실행만으로 의도한 보안 구성이 완료되어야 합니다.
    • 스크립트에는 주석을 충분히 달아주세요.
    • 스크립트는 여러개의 파일로 구성될 수 있습니다. 단, 파일이 여러개인 경우 이들의 실행 순서를 명확히 표기하거나, 이들의 실행을 관리하기 위한 부모 스크립트 또는 Makefile 등이 포함되어야 합니다.
    • 기타 필요한 정보는 Readme 파일에 작성해주시면 됩니다 (별도의 양식은 없음)
  • Docker 설치 스크립트: ‘install_docker.sh’
  • 제출기한: 2022년 9월 19일 월요일 오전 11시 59분.
    • 제출 기한을 초과하면 패널티가 있으니 기한을 엄수해주세요.
  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.

  • 본 문제까지 결과를 통해 상위 4개팀만이 Phase 3-2 최종 프리젠테이션 결승에 참여하시게 됩니다.



Phase 2. 두번째 과제 (22/08/19 - 22/08/31)

지난 사건에 대해, 단순한 침해 분석으로는 데이터(파일)들의 유출을 직접적으로 확인하기가 어렵다는 결론이 내려졌습니다.
아무래도 라이브 환경이 아닌 디스크 이미지를 분석하는 것은 역시나 한계가 있네요.

사실 공격자의 목적과 의도를 모르니 그저 불안하기만 합니다.
어떤 데이터가 탈취된 것인지...
혹시 우리도 모르는 사이에 중요한 데이터가 탈취 당한 것은 아닌지...

혹시나 싶어 게시판을 지켜봐도 더이상의 소식은 없습니다.

그렇다고 마냥 손가락만 빨순 없습니다!

현재 PC는 분석 시 확보가능한 데이터가 한정적이기 때문에 (운영체제 설치 시 기본설정)
공격자의 최종 행위를 파악하는데 무리가 있었습니다.

다음에도 이런일이 발생할 경우를 대비해 침해사고 시 분석에 활용가능한 데이터를 확보할 수 있는 방안을 연구하고, 이를 가상머신에 설정해 보세요.

또한, 가상머신에 주어진 악성코드를 활용해 역으로 침입 행동을 재현해서 미리 PC에 준비를 했다면 "확보할 수 있었던" 데이터를 재 분석해보세요!


침해사고 준비도를 적용 후 악성행위를 재현 및 가상머신을 재 분석하세요
  1. 지난 바이너리의 타겟 ip와 동일하게 nc -lvp 8080을 열고 있으면, 리버스쉘 이후의 행위를 재현할 수 있습니다.
  2. 이를 이용해, 내부망에 다른 PC를 설정한 후 리버스쉘 이후 실행 행위를 재현하여 보세요.
  3. 기존 침해사고 준비도와 관련된 자료를 연구하고 작성해두면 좋을 것 같네요!
  4. 보고서는 침해사고 준비도 관련 자료조사 - 가상머신에 적용 - 악성행위 재현 - 준비도 적용으로 인해 확보가능한 추가 분석 데이터를 첫번째 과제의 보고서와 비교하여 작성순으로 작성해주세요
  • 기대 결과물: 보고서-침해사고 준비도, 악성행위 재현 내용에 대한 설명

  • 문제 다운로드: ‘Phase2 두번째 과제’

  • 제출기한: 2022년 8월 31일 수요일 오전 11시 59분.
    • 제출 기한을 초과하면 패널티가 있으니 기한을 엄수해주세요.
  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.

  • 본 문제의 이야기는 다음 단계에서도 죽 이어집니다!


Phase 2. 첫번째 과제 (22/08/03 - 22/08/17)

당신은 HCCC의 얼마안되는 정보보안전문가로서,
얼마전 발생한 웹 침해사고에 대해 열심히 분석하고 있습니다.

일단 동아리 웹페이지 서비스는 지속적으로 유지하고 있습니다.
범인은 현장에 다시 등장하는 법이죠.
공격자와 맞닿아 있는 채널은 현재까지는 웹페이지 뿐인지라
혹시나 싶어 공격자에 대한 단서를 더 얻고자 아무렇지 않은 척 운영하고 있습니다.

그런데 옆자리의 동료 보안담당자가 갑자기 이상한 소리를 합니다.

공격자가 개심을 했나보다. 게시판에 올라온 글 봤냐?
시스템 고쳐준다고 복구 툴까지 올려줬다.
혹시나 싶어 내 컴퓨터에서 한번 슬쩍 돌려도봤는데 별다른 이상 없는거 보니 진짜 마음을 고쳐먹은듯 하다.

응? 이건 뭔 소리일까요?
공격자가 그런 친절을 베풀었다구요?

아무래도 이상하여 동료 보안담당자의 컴퓨터를 살펴봅니다.

역시나 그럴리 없죠.
컴퓨터는 악성코드에 이미 감염이 되었으며,
무언가 데이터를 유출하려던 흔적이 있어보입니다!
하지만 이 모든게 은밀하게 이루어졌던 터라, 알아채지 못했던 겁니다!

이제 다시 공격자와 나와의 싸움입니다.
시스템에 악성코드가 어떻게 감염이 된 것인지,또 얘는 어떤 녀석인지,
그리고 컴퓨터 안에서 어떤 나쁜짓을 했는지 면밀히 분석해봅시다.


악성코드에 감염된 윈도우 시스템을 분석하세요.
  1. 첨부된 이미지는 HCCC동아리 홈페이지로 인해 악성코드에 감염된 윈도우 시스템의 가상머신 이미지입니다.
  2. 해당 시스템의 침해상황을 파악하기 위해 유입경로, 실행행위 및 파일 삭제 흔적 분석등을 분석하시고,
  3. 악성코드의 지속적인 흔적을 파악해보세요.
  • 기대 결과물: 진단 보고서

  • 문제 다운로드: ‘Phase2 첫번째 과제’
    • 링크에 접속하면 가상머신의 이미지와 보고서 양식등이 들어있습니다.
    • 파일의 비밀번호는 참가자들에게 개별로 전달됩니다.
  • 제출기한: 2022년 8월 17일 수요일 오전 11시 59분.
    • 제출 기한을 초과하면 패널티가 있으니 기한을 엄수해주세요.
  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.

  • 본 문제의 이야기는 다음 단계에서도 죽 이어집니다!



Phase 1. 두번째 과제

우여곡절 끝에 사내 동아리 홈페이지는 잘 운영되었습니다.
직원들의 만족도도 상당하네요!

그런데 동아리 홈페이지가 운영되기 시작한지 며칠 지나지않아 개발자와 서버 관리자가 조용히 찾아옵니다.

"아무래도 외부에서... 악의적인 접속이 있었던듯 합니다..."

자세히 이야기를 들어보니 파일 공유 게시판에서 침해흔적이 발견되었답니다.
어휴!... 그렇게 조심하라고 경고했었건만...
아무 문제 없을거라며 자신만만하던 개발자는 서버 관리자 뒤에서 말없이 고개만 숙이고 있네요.

개발자와 서버 관리자가 찾아온 이유는 무언가 침입이 있었다는건 알겠는데
어디로 어떻게, 그리고 무엇이 털렸는지(?) 자기들은 도저히 다 파악을 못하겠다합니다.
그래서 정보보안전문가인 여러분을 찾아왔다네요.

이러한 침해사고의 가장 중요한 것들 중 하나는 현재 시스템의 상태를 가능한 빨리 확보하고 보존하는겁니다.
여러분은 외장하드를 챙겨서 서버실에 한달음 달려가,
침해가 발생한 웹서버의 이미지를 지금 막 확보하였습니다!

자, 여기 그 이미지를 가상머신을 통해 작동 가능한 상태로 만들어두었습니다.

지금부터 공격자가 어떻게 침입을 했는지 부터, 무엇이 털렸는지 피해 정도를 식별해보고,
이를 방지하기 위한 방법들을 고민해 봅시다.


웹서버의 침해를 파악하고 대응책을 고민해보세요.
  1. 첨부된 링크는 1단계 문제를 작동시키던 웹서버의 가상머신 이미지입니다.
  2. 해당 웹서버에 파일 공유 게시판을 중심으로 침해가 있었습니다!
  3. 공격자의 침해 경로 및 행위등을 분석하고, 피해 정도를 파악해주세요.
  4. 상세한 내용은 문제 파일의 보고서에 안내되어있습니다.
  • 기대 결과물: 진단 보고서, 환경구성을 위한 스크립트 또는 프로그램 코드

  • 문제 다운로드: ‘두번째 과제’
    • 링크에 접속하면 가상머신의 이미지와 보고서 양식등이 들어있습니다.
    • 파일의 비밀번호는 참가자들에게 개별로 전달됩니다.
    • 링크의 비밀번호와 내부 압축파일의 비밀번호는 동일합니다.
  • 제출기한: 2022년 7월 31일 일요일 오후 18시 00분.
    • 제출 기한을 초과하면 패널티가 있으니 기한을 엄수해주세요.
  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.

  • 본 문제의 서버의 이야기는 다음 단계에서도 죽 이어집니다!


Phase 1. 첫번째 과제

호남지역의 우수한 인재들이 모여 만들어낸 HCC Company (HCCC)는 자그마한 스타트업부터 시작해 지금은 대한민국 국민이라면 누구나 주목할만한 회사로 성장하였습니다.

회사가 커진 만큼, HCCC는 사내 복지의 일환으로 동아리 활동을 지원하기로 결정하였으며,
이에 HCCC는 동아리 내부에서 원할한 커뮤니케이션이 이루어질 수 있도록 '공지사항, 게시판, 자료실 등'의 기능을 가진 웹사이트를 자체 제작 하였습니다.

여러분은 HCCC의 새내기 정보보안전문가로서,
제작된 웹사이트에 대한 보안성 검토를 요청을 의뢰받았습니다.

이런...!

보안성 검토를 해야한다고 개발자에게 협조를 부탁하니, 개발자는 귀찮다는 듯이 소스코드와 간단한 설정파일만 던져주고 나머지는 알아서 하라고 합니다. 아무 이상 없다는 말을 덧붙이면서요...!
개발 과정에서 정보보안이란 그저 일정만 지연시키는 불필요한 단계라 여겨지는 듯 합니다.

아무래도 보안에 대한 고려 없이 만들어진 웹페이지가 얼마나 위험할 수 있을지 알려주고,
정보보안의 중요성을 확실하게 보여줘야 할 듯 합니다.

뭐...그러려면 일단 웹페이지에 대한 테스트 환경을 구축하는 것 부터 시작하긴 해야하겠네요!


첨부된 파일의 웹페이지를 구성하고 취약점을 진단하세요.
  1. 제공된 웹페이지 파일들(i.e., 소스코드와 설정파일)을 사용해 테스트 환경을 구축하고 실행하세요.
  2. 웹페이지에 어떤 취약점이 있는지 파악하세요. 취약점은 Client-side, Server-side 모두를 포함합니다.
  3. 취약점이 존재하는 경우 해당 취약점에 대한 대응방안 또는 패치를 제시하세요.
  4. 상세한 내용은 문제 파일의 보고서에 안내되어있습니다.
  • 기대 결과물: 진단 보고서, 취약점이 패치된 웹페이지 파일들 또는 환경구성을 위한 스크립트 등.

  • 문제 다운로드: ‘첫번째 과제’
    • 압축을 풀면 웹페이지의 압축, 보고서 양식등이 들어있습니다.
    • 파일의 비밀번호는 참가자들에게 개별로 전달됩니다.
  • 제출기한: 2022년 7월 14일 오전 11시 59분.
    • 제출 기한을 초과하면 패널티가 있으니 기한을 엄수해주세요.
  • 대회와 관련된 각종 질문들은 별도로 안내해드릴 채널을 통해 해주시면 됩니다.

  • 본 문제의 웹페이지 이야기는 다음 단계에서도 죽 이어집니다!