read: fail

Rust 표준 라이브러리 보안 권고 (CVE-2024-24576)

Rust 표준 라이브러리에서 Windows에서 .bat.cmd 확장자를 가진 배치 파일을 호출할 때 인수를 제대로 이스케이프 처리하지 않아 발생한 취약점(CVE-2024-24576)이 발견되었습니다. 이는 공격자가 이스케이프를 우회하여 임의의 쉘 명령어를 실행할 수 있게 했습니다. Rust 1.77.2 버전에서 이 문제를 해결할 예정입니다.

CP/M의 역사, 게리 킬달 박사에 의해

1973년, 인텔에서 일하던 게리 킬달은 어셈블리 언어 프로그래밍을 대체할 PL/M 언어를 개발했습니다. 그는 종이 테이프 대신 플로피 디스크를 사용하는 데 관심을 가졌고, 1974년에는 존 토로드와 함께 인텔렉-8 개발 보드에서 작동하는 CP/M 시스템을 구축했습니다. CP/M은 천천히 진화했으며, 게리 킬달은 CP/M을 개선하고 여러 회사에 라이선스를 부여했습니다. 1976년에는 Imsai 컴퓨터에 CP/M을 적용하며 BIOS 개념을 도입했고, CP/M은 공개 시장에서 인기를 얻었습니다. CP/M은 독립 소프트웨어 시장의 성장을 가능하게 하는 제조업체 독립 플랫폼을 제공했습니다.

검증된 curl

이 기사에서는 curl 패키지의 무결성을 확인하고 숨겨진 백도어나 악성 코드가 없는지 검증하는 방법에 대해 설명합니다. git 저장소 검사, 퍼징 및 자동 테스트 과정 확인, 릴리스 타르볼의 git 저장소 기반 생성 검증, 릴리스 타르볼의 재현 가능성, 디지털 서명 검증, 커밋 서명 확인, 그리고 git 저장소 코드 리뷰 등의 단계를 포함합니다. 오픈 소스 프로젝트의 신뢰 유지에 대한 도전과 함께, 모두가 패키지를 검증함으로써 보안을 강화할 수 있다고 결론짓습니다.

API 없는 클라이언트 라이브러리가 더 낫다

작가는 별도의 API를 배울 필요 없이 Pandas, Polars, Dask와 같은 인기 데이터 분석 라이브러리와 직접 통합되는 'csvbase-client' 라이브러리를 만들었습니다. 이를 통해 사용자는 csvbase:// URL 스키마를 사용하여 csvbase.com에 데이터를 읽고 쓸 수 있으며, fsspec 라이브러리를 활용해 데이터 도구와의 간편한 통합을 제공합니다.

소프트웨어 개발 메트릭의 불완전한 목록

최근 소프트웨어 개발에서 통계적 공정 관리(SPC)의 사용에 대한 논의가 있었습니다. 이 문서는 팀 구성, 개발 활동, 코드 품질, 테스팅, 배포, 사고 대응 등 다양한 소프트웨어 개발 과정을 측정할 수 있는 잠재적 메트릭의 불완전한 목록을 제시합니다. 이 목록은 소프트웨어 개발이 실제로 측정 가능하며, 이러한 메트릭이 자유 현금 흐름과 투자 자본 수익률과 같은 중요한 비즈니스 결과에 영향을 줄 수 있음을 보여줍니다.

MIPS 스택트레이스: 예상치 못한 여정

이 글은 MIPS32 임베디드 장치에서 C 프로그램을 위한 스택트레이스 기능을 구현하려던 저자가 마주한 도전에 대해 다룹니다. glibcbacktrace()backtrace_symbols_fd() 함수가 MIPS32 아키텍처에서 예상대로 작동하지 않았고, 프레임 포인터 사용의 차이 때문에 표준 언와인딩 기술이 효과적이지 않았습니다. 저자는 어셈블리 지시문을 파싱하여 스택 프레임 레이아웃을 결정하고 반환 주소를 추출하는 맞춤형 솔루션을 구현해야 했습니다. 이 과정에서 주목할 만한 점은 신뢰하는 의존성의 동작을 검증하는 것의 중요성과 인터넷 정보의 신뢰성에 대한 경고입니다.

P.I.L.O.T: ICMP 패킷을 이용한 은밀한 파일 전송 시스템

P.I.L.O.T는 ICMP (인터넷 제어 메시지 프로토콜) 패킷을 사용하여 네트워크를 통해 파일을 은밀하게 전송하는 시스템입니다. PowerShell 스크립트와 Python 스크립트를 활용해 데이터를 보내고 받으며, 전통적인 방법이 감시되거나 차단될 수 있는 환경에서도 데이터 전송을 가능하게 합니다.

해스켈에서의 구분된 연속성, 새로운 이정표 (2023)

해스켈에서 구분된 연속성이란 프로그램 실행의 나머지 부분을 설명하는 개념으로, throwcatch 같은 연산을 사용해 연속성의 일부를 캡처할 수 있습니다. GHC 버전 9.6에서는 이를 효율적으로 사용할 수 있게 되었으며, 다양한 제어 흐름 구성과 대수 효과 구현에 유용할 것으로 보입니다.

BatBadBut: 윈도우에서 명령어를 안전하게 실행할 수 없다

BatBadBut 취약점은 윈도우 애플리케이션에서 CreateProcess 함수에 간접적으로 의존할 때 특정 조건이 충족되면 명령어 주입을 가능하게 합니다. 보안 엔지니어 RyotaK가 여러 프로그래밍 언어에 대해 보고한 이 취약점은 개발자들에게 큰 주의를 요합니다. 해결 방법으로는 명령어 실행 시 파일 확장자를 명시하거나 사용자 입력을 적절히 이스케이프하는 것이 포함됩니다.

내 배포 플랫폼은 쉘 스크립트입니다

무료 소프트웨어와의 여정이 '공포의 쇼'로 변한 후, 저자는 매분마다 실행되는 쉘 스크립트를 이용한 간단한 배포 시스템을 구축했습니다. 이 시스템은 년간 유지보수 없이 안정적으로 작동해왔으며, 저자는 작고 특정한 해결책이 더 쉽고 즐거울 수 있다고 주장합니다. '작은 것을 작게 유지하라'는 메시지와 함께, 자신에게 맞는 해결책을 찾을 것을 독려합니다.

LLM을 제품에 활용하는 방법에 대한 노트

LLM을 사용할 때는 정확성을 평가하고, 워크플로우를 재구성하여 사용자 경험을 향상시키며, RAG를 통해 더 나은 응답을 생성해야 합니다. 또한, 혁신의 속도, 인간의 개입, 법적 책임, 그리고 저작권 문제도 중요한 고려사항입니다. LLM은 신속한 프로토타이핑을 가능하게 하지만, 제품을 확장하고 유지하는 데는 추가 전문 지식이 필요합니다.

InSpectre Gadget: 크로스-프리빌리지 Spectre v2의 잔여 공격 표면 조사

InSpectre Gadget은 심볼릭 실행을 사용하여 Spectre 기기의 취약성을 정확하게 분석하는 도구입니다. 이 도구는 리눅스 커널에서 새로운 취약한 Spectre 기기를 발견하여 모든 배포된 인텔 완화 조치를 우회할 수 있음을 보여줍니다. 또한, 최신 세대 인텔 CPU에서 리눅스 커널에 대한 첫 번째 네이티브 Spectre-v2 공격을 시연했습니다.

Crystal 1.12.0 버전 출시

Crystal 1.12.0 버전이 출시되었습니다! 이번 업데이트에는 142개의 변경사항14명의 기여자가 포함되어 있으며, ABI 호환성 변경, 프로세스 종료 핸들러 개선, 동시성 지원 강화, 라이브러리 업데이트, 새로운 수치 메소드 추가, Windows 지원 개선 등 다양한 분야에서 발전이 이루어졌습니다. 특히, 멀티 스레드 런타임 개선을 위한 준비 작업이 눈에 띕니다.

구현에서 디자인을 복구할 수 없다

코드가 수정됨에 따라 디자인은 종종 시간이 지나면서 사라지고, 원래의 디자인을 복구하기 어려워집니다. 디자인을 코드에 적극적으로 포착하는 것이 중요하며, 구현보다 먼저 디자인을 해야 한다는 것이 핵심 메시지입니다. 디자인은 구현에서 복구할 수 없으므로, 코드를 개선하기 위해 프로그래머는 지속적으로 디자인 기술을 향상시켜야 합니다.

Max Datom - 상호작용형 Datomic 튜토리얼

MaxDatom은 상세하고 상호작용적인 시각화를 생성하는 기술로, 작은 화면에서 제대로 표시되기 어려울 수 있습니다. 브라우저 창 크기 조정, 더 큰 기기 사용, 또는 대체 시청 옵션 확인을 통해 콘텐츠를 제대로 경험해 보세요.

현대 CSS를 이용한 HTML 테스트

REVENGE.CSS 프로젝트를 통해 HTML 안티 패턴을 시각적으로 강조한 저자는 ERROR 속성과 커스텀 속성을 활용한 CSS 기반 테스팅의 진보를 논의합니다. :has():is() 같은 현대 CSS 선택자를 사용하여 보다 표현력 있고 강력한 HTML 테스팅이 가능해졌으며, 캐스케이드 레이어를 사용한 조직화로 에러 스타일의 우선순위를 보장합니다. 이는 시각적 워크플로우에 부합하고 관심사의 분리를 가능하게 하는 등, 자바스크립트 기반 테스팅보다 많은 장점이 있음을 주장합니다.

기밀 컴퓨팅에 대한 공개된 비밀

기밀 컴퓨팅은 데이터 사용 중 보호를 목표로 하는 신흥 분야입니다. AMD SEV-SNP, Intel SGX, Intel TDX 같은 주요 기술들이 있지만, 보안 문제가 발견되었습니다. AWS는 자체적인 Nitro 시스템을 사용하며, 이 분야는 여전히 많은 도전에 직면해 있어 신중한 열정이 필요합니다.

내부 CA의 문제점과 해결 방안

내부 인증 기관(CA)을 사용할 때 발생하는 문제점과 Anchor가 제공하는 개선된 개발자 경험에 대해 설명합니다. 주요 문제는 배포와 신뢰 관리에 있으며, Anchor는 ACME 프로토콜OS 및 언어 패키지를 통해 이를 해결하고자 합니다. 또한, 내부 TLS 배포를 위한 무료 개발 도구 lcl.host를 제공합니다.

Yeti 프로그래밍 언어

Yeti는 JVM(Java Virtual Machine)에서 실행되는 함수형 프로그래밍 언어입니다. 정적 타입 추론, 다형성 구조, 패턴 매칭 등을 특징으로 하며, Java 코드와의 쉬운 통합을 지원합니다. 그러나 JVM 의존성이 한계로 지적되어, 개발자는 OCaml이나 Nim 같은 다른 언어를 탐색할 것을 제안합니다.

오픈 멀티-퍼스펙티브 발급 검증 프로젝트 발표

프린스턴 대학교 연구팀이 BGP 라우팅 공격에 대항하여 인증서 발급을 강화하기 위한 새로운 오픈 소스 프로젝트, 오픈 MPIC 프로젝트를 개발 중입니다. 이 프로젝트는 다양한 관점에서 도메인 제어 검증을 수행하는 MPIC를 클라우드에서 쉽게 배포할 수 있도록 지원합니다. 오픈 소스로 진행되며, 커뮤니티와 산업계의 협력을 환영합니다.