DevOps o 오픈소스 관련 10년 이상 컨트리뷰션 경력 KDE kcharselect, GNOME gucharmap, GNOME character LibreOffice, etc o LibreOffice Membership o GNOME Foundation Member o openSUSE Asia Committee Member o Expired CISA(Certified Information Systems Auditor) certification(2014-2020)
단절망(Air-gapped)환경이 필요함 단절망(air-gapped)환경 구축을 하면 핵심 데이터(민감 및 기밀유지) 유출방지가 용이하게 됨 – 데이터 보안 강화, 규제 준수 – 그러나 ML/AI의 많은 패키지는 여러 외부 패키지를 참조해야 함 – 즉, 단절망(air-gapped)에서 패키지 반입이 필요
많은 라이브러리와 패키지를 인터넷 환경으로 접근 할 수 없으니 많은 제약이 생김 – 데이터가 탈출을 못하나, 데이터를 활용한 AI/ML/LLM구축을 위한 라이브러리, 패키지를 구할 수 없는 단점 패키지 반입 문제 – 필요한 라이브러리나 패키지를 가져오는 과정이 까다로움 – 패키지가 대용량인 경우가 많음 예) pypi (2024.09.11. 22.9TB, 용량이 계속 늘어남) https://pypi.org/stats/ – 검증된 패키지만 반입해야 하므로 보안 검수 절차 필요함
오픈소스 소프트웨어 채택 – 비용절감: 무료로 사용할 수 있어 라이선스 비용을 크게 절감 가능 – 벤더 종속성 감소: 특정 업체에 종속되지 않고 다양한 옵션을 선택할 수 있어 유연성이 높아짐 – 기술 혁신: 오픈소스를 통해 최신 기술에 쉽게 접근 할 수 있고, 혁신을 촉진할 수 있음 – 커스터마이징 용이성: 소스코드가 공개되어 있어 필요에 따라 수정하고 확장할 수 있음 – 보안(Security)과 투명성(Transparency): 소스코드가 공개되어 보안 취약점을 쉽게 식별하고 수정할 수 있음 실제 사례 – 기업사례: IBM, MS, Google, Meta Microsoft loves open source https://pulse.microsoft.com/nl-nl/transform-nl-nl/na/fa1-microsoft-loves- open-source/ – 정부사례: 유럽연합은 "EU 오픈소스 소프트웨어 전략2020-2023"을 수립하여 오픈소스 활용을 정책적으로 장려 https://ec.europa.eu/info/sites/info/files/en_ec_open_source_strategy_2020-2023.pdf
발견된 웜바이러스 – 이란의 나탄즈(Natanz) 핵시설 – 외부 인터넷과 완전히 차단된 단절망 환경으로 운영함 – 공격 방법: USB메모리 스틱을 통한 침투 – 이란의 핵 개발 속도를 상당히 늦췄고, 많은 원심분리기가 물리적으로 손상됨 – 단절망 환경에서도 물리적 매체(USB)와 고도의 정교한 악성코드를 통해 공격이 가능함을 보여줌 – Wikipedia: https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%84%B1%EC%8A%A4%EB%84%B7 단절망 환경에서 보안 이슈 – 물리적 보안의 중요성 단절망은 외부로부터 시스템을 보호할 수 있지만, 물리적 보안이 취약할 경우 외부 매체를 활용하면 뚫릴 수 있음 내부 시스템에 대한 보안 강화 필요
삭제됨) – Detecting Malicious Packages on PyPI: Malicious package on PyPI use phishing techniques to hide its malicious intent https://blog.checkpoint.com/2023/03/18/detecting-malicious-packages-on-pypi-malicious-package-on- pypi-use-phishing-techniques-to-hide-its-malicious-intent/ – 피싱 기법을 이용하여 악성코드를 숨기고 있음
라자루스 그룹에서 만든 패키지 (현재 삭제됨) – New Malicious PyPI Packages used by Lazarus https://blogs.jpcert.or.jp/en/2024/02/lazarus_pypi.html – pycryptoconf-1.0.6.tar.gz sha256 hash: 956d2ed558e3c6e447e3d4424d6b14e81f74b63762238e84069f9a7610aa2531 – Virustotal: https://www.virustotal.com/gui/file/956d2ed558e3c6e447e3d4424d6b14e81f74b63762238e84069f9a 7610aa2531 – V3 검사 결과
코드가 탐지된 패키지의 예 o 대다수는 악성코드를 탐지하고 분석하는 패키지, 해킹툴(Hacking tools) 관련 패키지 Cuckoo, androbane o 오탐(False Positive)의 경우도 존재함 o 실제 악성코드가 탐지되어 "yanked" flag가 붙은 사례 (pypi.org에서 다운로드는 가능함) py7zr
일반적인 사이트 반입 인터넷망으로 사이트 담당자에게 Repository 반입 고객사이트에서 보안 검토 완료 후 사이트 내로 반입 고객사 내 Backend.AI session 및 개발PC에서 Reservoir 저장소 사용 o 완전 단절망(Air-Gapped Network) 업데이트 외부망과의 직접 연결 지양 Update 파일 공유 후 고객사 인력에 의해 내부 반입 진행(담당자가 직접 검사 진행) 지정한 특정 위치에 해당 업데이트 파일을 넣으면 Reservoir 업데이트 적용 고객사 내 Backend.AI session 및 개발PC에서 Reservoir 저장소 사용
o 조건을 만족하는 media의 종류: DVD Blu-ray DVD의 문제점 o DVD 반입 시 미디어 용량의 한계 o DVD 싱글레이어: 4.7GB DVD 듀얼레이어: 8.5GB o 경우에 따라 Reader 기기 특성을 타는 경우도 있음 o + 굽기 힘듬 Blu-ray 반입 시 Reader 기기가 보급되어 있지 않음 o 용량 상으로는 25GB를 기본으로 300GB 까지 가능하므로 괜찮음 o 백신 검사를 통과해야 하기에, Reading 속도가 제대로 나오지 않음 o 고객사에 Reader 기기가 보급되지 않은 경우도 있었음
가능 o 반출이 불가능하고 폐기하거나 (이 경우에도 고객사 정책에 따라 검사) o 또는 반입 반출 시 변경사항이 있는지 검사 (고객사 정책에 따라 결정) 검사에 보통 Windows PC를 사용하기 때문에 일부 제약이 존재함 o Windows에서 인식할 수 있는 Filesystem이어야 함 o 검사 전후에 Linux server에서 읽고 쓸 수 있는 Filesystem이어야 함 o 이 조건을 만족시키면서 10GB 이상의 대용량 파일을 담을 수 있어야 함 o 반입 Disk는 TB 용량 o 위 조건을 만족하는 Filesystem은 exFAT
보통 Windows o 백신 보통 V3 200MB까지의 압축 파일만 지원함. V3보다 더 큰 압축 파일 검사를 지원하는 알약 o 백신 검사 때문에 압축 파일을 원형 그대로 유지하여 반입하기 어려움 압축 버전과 압축 해제 버전을 두 벌 반입 다음은 repository에 들어 있는 대표적 압축 file o .tar, .tar.*, .deb, .zip, .whl 경우에 따라서 소유자 및 권한을 유지하면서 개별적으로 압축 해제가 되는 200MB 이하의 압축 파일로 나눴다가 원상복원해야 함.
작은 크기의 파일이 대부분임 exFAT은 큰 파일을 담기는 좋으나, 작은 파일을 많이 담기에는 적합하지 않음 o Disk 용량을 거의 못 쓰기도 함. 1TB 정도의 block device에서 exFAT으로 포맷 후 1 byte를 쓰는 파일을 100,000개 만들어 보면 약 13GB 용량을 차지함 200MB 이하로 개별 압축 해제 가능한 압축 파일을 만들어 반입 ~/work/mnt $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 976.6G 0 loop /home/test/work/mnt ~/work/mnt $ ls target | wc -l 100000 ~/work/mnt $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/loop0 1024000000 12843648 1011156352 2% /home/test/work/mnt 12,843,648 / 100,000 = 128.43648 (KB) *계산 상 개당 128KB, wikipidia는 Win10기준 기재하고 AB로 설명 ** ext4는 16TB까지 4KiB block size(cluster size) 로 지원
저장소 및 업데이트 서비스 – 로컬 패키지 저장소 서비스 격리된 네트워크 내 올인원 오프라인 서비스 구축 패키지의 악성코드 검사 후 반입을 하여 검증이 가능 패키지 저장소 캐시 서비스로 네트워크 트래픽 절약 – 지원 가능 패키지 저장소 Ubuntu centos-stream cran conda pypi
꽤 많은 시간과 인력이 필요 Pypi의 예를 보아도 폐쇄망 환경에서 Repository의 패키지 반입을 할 때 패키지 검증이 필수적 신뢰할 수 없는 패키지를 반입할 경우, 악성코드로 인해 폐쇄망 시스템의 보안이 무너질 수 있음 고객의 핵심 역량에 집중하기 위해 Backend.AI Reservoir가 좋은 대안이 될 것
Reporting Evolved" (2024-03-06) https://blog.pypi.org/posts/2024-03-06-malware-reporting-evolved/ – V3, clamav에서 탐지한 패키지를 직접 신고하였음 “Report project as malware” pypi.org의 패키지 프로젝트 하단에 위치 - 로그인해야 보임 그러나, 신고후에 반려됨 단순히 패키지의 악성코드 분석으로는 오탐(False Positive)의 가능성이 있기 때문에, 추가 지표 알려야 한다며 반려