SW 보안 개요
컴퓨터 보안의 목표는 시스템, 네트워크 및 데이터를 무단 액세스하는 공격 및 손상으로부터 보호하는 것이다.
대부분 개발자나 운영자는 소프트웨어가 원하는 대로 동작하는 정확성에 집중하며 보안성 측면으로는 원하지 않는 동작을 하는 것을 방지하는데에 집중한다.
소프트웨어보안의 중요성
- 현실에는 SW 취약점이 항상 존재하여 원하지 않는 동작을 하여 피해를 입히게 됨
- 안전한 소프트웨어는 공격자가 악용하기 어렵고, 공격에 성공하더라고 피해를 제한하거나 취약점을 패치하거나 공격 피해를 빠르게 복구할 수 있음
보안의 중요성을 보여주는 사건
1. 2016년 군 내부망 해킹사건
https://www.yna.co.kr/view/AKR20161206117951014
軍 내부 사이버망 어떻게 뚫렸나…혼용서버 존재 2년간 '깜깜'(종합) | 연합뉴스
(서울=연합뉴스) 이정진 기자 = 군 내부 전용 사이버망이 북한으로 추정되는 해킹세력에 뚫리면서 충격을 주고 있다.
www.yna.co.kr
https://www.voakorea.com/a/3624852.html
한국 군 내부망 해킹 당해…"북한 사용 악성코드와 유사"
한국 군의 내부 전용 사이버망이 사이버사령부 창설 이후 처음으로 북한으로 추정되는 해킹 세력에게 뚫렸습니다.
www.voakorea.com
https://news.kbs.co.kr/news/pc/view/view.do?ncd=3474234
軍 “국방망 해킹 北 소행, 26명 징계”…총체적 기강해이
[바로가기] [뉴스12] “국방망 해킹, 北 소행”…군·업체·수사기관 총체적 해이 군 검찰단은 지난해 9월 발...
news.kbs.co.kr
위에 참고 기사들..
이 사건은 북한 해커 조직의 소행으로 추정되는 공격이었는데 군사비밀을 포함해서 여러 자료가 유출되었다고 한다.
사건 흐름
- 최초 침입: 해커들이 외부 인터넷망에 연결된 한 컴퓨터를 악성코드로 감염시킴
- 내부망 침투: 감염된 컴퓨터로 국방통합데이터센터(DIDC)에서 군 인터넷망이랑 국방망사이의 접점을 발견해서 폐쇄망이었던 국방망에 침투
- 자료 유출: 백신 중계서버에 악성코드 유포한 뒤에 군사 자료 탈취
여기서 사용된 IP 일부가 중국 선양 지역의 IP였는데 이게 기존의 북한 해커들이 사용하던 IP랑 동일했다고함(악성코드도 북한 해커들이 쓰던것과 유사..)
문제점
- 망 분리 미흡: 폐쇄망이었던 국방망이 물리적으로 분리되어야했음
2. Heartbleed(2014):OpenSSL 라이브러리의 취약점(2011)
하트블리드는 2014년에 발견된 OpenSSL 보안 취약점
공격자가 시스템의 메모리 일부를 무단으로 읽을 수 있도록 하는 문제가 있었다
https://nvd.nist.gov/vuln/detail/cve-2014-0160
NVD - cve-2014-0160
CVE-2014-0160 Detail Modified This CVE record has been updated after NVD enrichment efforts were completed. Enrichment data supplied by the NVD may require amendment due to these changes. Description The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.
nvd.nist.gov
https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-0160
CVE - CVE-2014-0160
The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packets, which allows remote attackers to obtain sensitive information from process memory via crafted packets that trigger a buffer over-rea
cve.mitre.org
어떻게 한거냐?
서버한테 "감자"라고 두글자로 대답해 하면 "감자"라고 말함
근데 "감자"라고 500글자로 말해 하면 [감자를 포함해서 500만큼의 크기를 반환]하게된다. 이때 감자를 제외한 498자에 메모리에 있는 다른 정보들을 전송하게되는 문제가 있었음.
당시에 엄청 많이 사용하던 오픈소스였어서 많은 곳에서 영향을 받았었다.
3. 알약 사고(2022)
https://www.yna.co.kr/view/AKR20220830135351017
이용자 1천600만 '알약' 오류로 PC 먹통…유저들 "보상하라"(종합) | 연합뉴스
(서울=연합뉴스) 임은진 기자 = 30일 보안 전문 기업 이스트시큐리티의 백신 프로그램 '알약'이 랜섬웨어가 아닌 정상 프로그램을 랜섬웨어로 잘...
www.yna.co.kr
백신프로그램 오류로 정상프로그램을 랜섬웨어로 잘못 인식한 사건
4. Crowdstriike 사고(2024)
미국 보안 기업인데 소프트웨어 업데이트오류가 나서 전 세계적으로 마이크로소프트 기반 컴퓨터에 블루 스크린 오류가 떴다.
왜? : CrowdStrike의 Falcon Sensor 보안 소프트웨어에 대한 콘텐츠 구성 업데이트가 문제의 원인. 윈도우 컴퓨터랑 시스템 충돌이 있었다고 한다..
이걸로 항공사 금융 기관 등등 피해를 입었음
(나 이 주식 샀었는데 이 사고 직전에 팔았었다 희희 그러고 주가 폭락했을때 사서 익절함)
결함과 취약점
결함: SW가 요구사항 충족못하고 잘못된 동작 할 때 발생, 설계 및 구현에서 발생
취약점: 원하지 않는 동작을 유발할 수 있는 보안 관련 소프트웨어 결함
정확성 관점 | - 버그가 항상 취약점은 아니다 - 버그 다 수정하는건 비용도 너무 큼 - 기업은 보통 일반 사용자에게 영향 미칠 가능성 높은 버그만 수정한다. |
보안 관점 | - 공격자는 일반 유저가 아님!! |
즉 정확성은 일반 사용자의 경험 개선, 보안은 공격자로부터 시스템 보호에 초점
보안을 위해서는 버그 및 설계 결함을 제거해 exploit이 어렵도록 해야한다.
정보보안의 고전 원칙(보안 목표)
기밀성(허가된것만 읽기), 무결성(권한있는것만 수정가능), 가용성(공격받을때도 계속 작동)
보안 목표의 지원 수단
- 식별 및 인증: 권한 줄때 사용자가 본인의 신원을 증명함
- 권한 부여
- auditing or logging: 중요 이벤트 기록 및 감사
사이버 보안에서 위험이 얼마정도인지 정량화하는것은 불가능하다..
Secure SW를 만드는 방법
개발 프로세스는 대부분 크게 네단계로 구성
- requirements
- design
- implementation
- testing/assurance
이 위의 모든 단계에서 security engineering을 적용
보안 SW개발할 때 우선 SW기능 위주로 설계하고 보안은 무시한다음에 기능을 먼저 채우고 보안 요구사항을 채우는 것은 나쁜 방법이다. 처음부터 개발할때 보안을 고려해서 전체 보안을 고려한 상태에서 개발을 진행하는 것이 바람직하다.
각 단계에서 아래같은 조취를 해야함.
requirements | security requirements abuse cases architectural risk analysis |
design | architectural risk analysis security-oriented design |
implementation | security-oriented design code review |
testing/assurance | risk-based security tests penetration testing |